diff --git a/plugins/portlet-junit/README.md b/plugins/portlet-junit/README.md
deleted file mode 100644
index db36979ba..000000000
--- a/plugins/portlet-junit/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# Struts 2 Portlet JUnit plugin
-The Portlet JUnit Plugin supports testing applications that use the Portlet Plugin.
diff --git a/plugins/portlet-junit/pom.xml b/plugins/portlet-junit/pom.xml
deleted file mode 100644
index 45b6b94be..000000000
--- a/plugins/portlet-junit/pom.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
- 4.0.0
-
- org.apache.struts
- struts2-plugins
- 6.4.0-SNAPSHOT
-
-
- struts2-portlet-junit-plugin
- jar
- DEPRECATED: Struts 2 Portlet JUnit Plugin - since 6.3.0
-
-
-
- org.apache.struts
- struts2-junit-plugin
-
-
- junit
- junit
-
-
-
- org.apache.struts
- struts2-portlet-plugin
- provided
-
-
- org.apache.struts
- struts2-portlet-mocks-plugin
-
-
-
-
- UTF-8
-
-
diff --git a/plugins/portlet-junit/src/main/java/org/apache/struts2/junit/StrutsPortletTestCase.java b/plugins/portlet-junit/src/main/java/org/apache/struts2/junit/StrutsPortletTestCase.java
deleted file mode 100644
index ad6fbeefa..000000000
--- a/plugins/portlet-junit/src/main/java/org/apache/struts2/junit/StrutsPortletTestCase.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.struts2.junit;
-
-
-import com.opensymphony.xwork2.ActionContext;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.apache.struts2.StrutsStatics;
-import org.apache.struts2.mock.web.portlet.MockPortletContext;
-import org.apache.struts2.mock.web.portlet.MockPortletRequest;
-import org.apache.struts2.mock.web.portlet.MockPortletResponse;
-import org.apache.struts2.mock.web.portlet.MockPortletSession;
-import org.apache.struts2.mock.web.portlet.MockStateAwareResponse;
-import org.apache.struts2.portlet.PortletConstants;
-import org.apache.struts2.portlet.PortletPhase;
-
-import javax.portlet.PortletMode;
-import java.util.HashMap;
-import java.util.Map;
-
-public abstract class StrutsPortletTestCase extends StrutsTestCase {
-
- private static final Logger LOG = LogManager.getLogger(StrutsPortletTestCase.class);
-
- protected MockPortletSession portletSession;
- protected MockPortletRequest portletRequest;
- protected MockPortletResponse portletResponse;
- protected MockContext portletContext;
-
- @Override
- protected void initActionContext(ActionContext actionContext) {
- super.initActionContext(actionContext);
- initPortletContext(actionContext);
- }
-
- protected void initPortletContext(ActionContext actionContext) {
- LOG.debug("Initializing mock portlet environment");
- portletContext = new MockContext();
- portletContext.setMajorVersion(getMajorVersion());
- actionContext.put(StrutsStatics.STRUTS_PORTLET_CONTEXT, portletContext);
-
- portletRequest = new MockPortletRequest(portletContext);
- portletResponse = new MockStateAwareResponse();
- portletSession = new MockPortletSession();
- portletRequest.setSession(portletSession);
- actionContext.withSession(createSession());
- actionContext.put(PortletConstants.REQUEST, portletRequest);
- actionContext.put(PortletConstants.RESPONSE, portletResponse);
- actionContext.put(PortletConstants.MODE_NAMESPACE_MAP, new HashMap());
- actionContext.put(PortletConstants.PHASE, PortletPhase.EVENT_PHASE);
- }
-
- /**
- * Override to define version of your portlet environment
- *
- * @return portlet version
- */
- protected int getMajorVersion() {
- return 2;
- }
-
- /**
- * Override to create your own session
- *
- * @return Map with session parameters
- */
- private Map createSession() {
- return new HashMap<>(portletRequest.getPortletSession().getAttributeMap());
- }
-
-}
-
-/**
- * Simple workaround to define Portlet version
- */
-class MockContext extends MockPortletContext {
-
- private int majorVersion;
-
- @Override
- public int getMajorVersion() {
- return majorVersion;
- }
-
- public void setMajorVersion(int majorVersion) {
- this.majorVersion = majorVersion;
- }
-
-}
-
diff --git a/plugins/portlet-junit/src/site/site.xml b/plugins/portlet-junit/src/site/site.xml
deleted file mode 100644
index 54fdcf4f4..000000000
--- a/plugins/portlet-junit/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
- org.apache.maven.skins
- maven-fluido-skin
- ${fluido-skin.version}
-
-
- Apache Software Foundation
- http://www.apache.org/images/asf-logo.gif
- http://www.apache.org/
-
-
- Apache Struts
- http://struts.apache.org/img/struts-logo.svg
- http://struts.apache.org/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/plugins/portlet-junit/src/test/java/org/apache/struts2/junit/StrutsPortletTestCaseTest.java b/plugins/portlet-junit/src/test/java/org/apache/struts2/junit/StrutsPortletTestCaseTest.java
deleted file mode 100644
index 22c92a0e0..000000000
--- a/plugins/portlet-junit/src/test/java/org/apache/struts2/junit/StrutsPortletTestCaseTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.struts2.junit;
-
-import com.opensymphony.xwork2.Action;
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.ActionProxy;
-import org.apache.struts2.StrutsStatics;
-
-import javax.portlet.PortletContext;
-
-public class StrutsPortletTestCaseTest extends StrutsPortletTestCase {
-
- String KEY = "my-param";
-
- public void testShouldPortletContextBeAvailable() throws Exception {
- // given
- assertNull(ActionContext.getContext().get(StrutsStatics.STRUTS_PORTLET_CONTEXT));
-
- // when
- ActionProxy proxy = getActionProxy("/test/testAction.action");
- String result = proxy.execute();
-
- // then
- assertEquals(Action.SUCCESS, result);
- Object portletContext = ActionContext.getContext().get(StrutsStatics.STRUTS_PORTLET_CONTEXT);
- assertNotNull(portletContext);
- assertTrue(portletContext instanceof PortletContext);
- }
-
- public void testShouldAdditionalContextParamsBeAvailable() throws Exception {
- // given
- assertNull(ActionContext.getContext().get(KEY));
-
- // when
- ActionProxy proxy = getActionProxy("/test/testAction.action");
- String result = proxy.execute();
-
- // then
- assertEquals(Action.SUCCESS, result);
- assertNotNull(ActionContext.getContext().get(KEY));
- }
-
- @Override
- protected void applyAdditionalParams(ActionContext context) {
- context.put(KEY, new Object());
- }
-}
diff --git a/plugins/portlet-junit/src/test/resources/struts.xml b/plugins/portlet-junit/src/test/resources/struts.xml
deleted file mode 100644
index e8c59512c..000000000
--- a/plugins/portlet-junit/src/test/resources/struts.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
-
- 200
-
-
-
-
diff --git a/plugins/portlet-mocks/README.md b/plugins/portlet-mocks/README.md
deleted file mode 100644
index 550476204..000000000
--- a/plugins/portlet-mocks/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# Struts 2 Portlet Mocks plugin
-This plugin is deprecated, and it will be removed soon, **please do not use it**!
diff --git a/plugins/portlet-mocks/pom.xml b/plugins/portlet-mocks/pom.xml
deleted file mode 100644
index 9b3a6081a..000000000
--- a/plugins/portlet-mocks/pom.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
- 4.0.0
-
- org.apache.struts
- struts2-plugins
- 6.4.0-SNAPSHOT
-
-
- struts2-portlet-mocks-plugin
- jar
- DEPRECATED: Struts 2 Portlet Mocks Plugin - since 6.0.0
-
-
-
- org.springframework
- spring-test
-
-
- org.springframework
- spring-web
-
-
-
-
- javax.portlet
- portlet-api
- provided
-
-
-
-
- 4.3.30.RELEASE
- UTF-8
-
-
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockActionRequest.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockActionRequest.java
deleted file mode 100644
index 390df5cda..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockActionRequest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright 2002-2009 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import javax.portlet.ActionRequest;
-import javax.portlet.PortalContext;
-import javax.portlet.PortletContext;
-import javax.portlet.PortletMode;
-
-/**
- * Mock implementation of the {@link javax.portlet.ActionRequest} interface.
- *
- * @author John A. Lewis
- * @author Juergen Hoeller
- * @since 2.0
- */
-public class MockActionRequest extends MockClientDataRequest implements ActionRequest {
-
- /**
- * Create a new MockActionRequest with a default {@link MockPortalContext}
- * and a default {@link MockPortletContext}.
- * @see org.springframework.mock.web.portlet.MockPortalContext
- * @see org.springframework.mock.web.portlet.MockPortletContext
- */
- public MockActionRequest() {
- super();
- }
-
- /**
- * Create a new MockActionRequest with a default {@link MockPortalContext}
- * and a default {@link MockPortletContext}.
- * @param actionName the name of the action to trigger
- */
- public MockActionRequest(String actionName) {
- super();
- setParameter(ActionRequest.ACTION_NAME, actionName);
- }
-
- /**
- * Create a new MockActionRequest with a default {@link MockPortalContext}
- * and a default {@link MockPortletContext}.
- * @param portletMode the mode that the portlet runs in
- */
- public MockActionRequest(PortletMode portletMode) {
- super();
- setPortletMode(portletMode);
- }
-
- /**
- * Create a new MockActionRequest with a default {@link MockPortalContext}.
- * @param portletContext the PortletContext that the request runs in
- */
- public MockActionRequest(PortletContext portletContext) {
- super(portletContext);
- }
-
- /**
- * Create a new MockActionRequest.
- * @param portalContext the PortalContext that the request runs in
- * @param portletContext the PortletContext that the request runs in
- */
- public MockActionRequest(PortalContext portalContext, PortletContext portletContext) {
- super(portalContext, portletContext);
- }
-
-
- @Override
- protected String getLifecyclePhase() {
- return ACTION_PHASE;
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockActionResponse.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockActionResponse.java
deleted file mode 100644
index b120ffd87..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockActionResponse.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.io.IOException;
-import java.util.Map;
-import javax.portlet.ActionResponse;
-import javax.portlet.PortalContext;
-import javax.portlet.PortletMode;
-import javax.portlet.PortletModeException;
-import javax.portlet.WindowState;
-import javax.portlet.WindowStateException;
-
-import org.springframework.util.Assert;
-
-/**
- * Mock implementation of the {@link javax.portlet.ActionResponse} interface.
- *
- * @author John A. Lewis
- * @author Juergen Hoeller
- * @since 2.0
- */
-public class MockActionResponse extends MockStateAwareResponse implements ActionResponse {
-
- private boolean redirectAllowed = true;
-
- private String redirectedUrl;
-
-
- /**
- * Create a new MockActionResponse with a default {@link MockPortalContext}.
- * @see MockPortalContext
- */
- public MockActionResponse() {
- super();
- }
-
- /**
- * Create a new MockActionResponse.
- * @param portalContext the PortalContext defining the supported
- * PortletModes and WindowStates
- */
- public MockActionResponse(PortalContext portalContext) {
- super(portalContext);
- }
-
-
- @Override
- public void setWindowState(WindowState windowState) throws WindowStateException {
- if (this.redirectedUrl != null) {
- throw new IllegalStateException("Cannot set WindowState after sendRedirect has been called");
- }
- super.setWindowState(windowState);
- this.redirectAllowed = false;
- }
-
- @Override
- public void setPortletMode(PortletMode portletMode) throws PortletModeException {
- if (this.redirectedUrl != null) {
- throw new IllegalStateException("Cannot set PortletMode after sendRedirect has been called");
- }
- super.setPortletMode(portletMode);
- this.redirectAllowed = false;
- }
-
- @Override
- public void setRenderParameters(Map parameters) {
- if (this.redirectedUrl != null) {
- throw new IllegalStateException("Cannot set render parameters after sendRedirect has been called");
- }
- super.setRenderParameters(parameters);
- this.redirectAllowed = false;
- }
-
- @Override
- public void setRenderParameter(String key, String value) {
- if (this.redirectedUrl != null) {
- throw new IllegalStateException("Cannot set render parameters after sendRedirect has been called");
- }
- super.setRenderParameter(key, value);
- this.redirectAllowed = false;
- }
-
- @Override
- public void setRenderParameter(String key, String[] values) {
- if (this.redirectedUrl != null) {
- throw new IllegalStateException("Cannot set render parameters after sendRedirect has been called");
- }
- super.setRenderParameter(key, values);
- this.redirectAllowed = false;
- }
-
- @Override
- public void sendRedirect(String location) throws IOException {
- if (!this.redirectAllowed) {
- throw new IllegalStateException(
- "Cannot call sendRedirect after windowState, portletMode, or renderParameters have been set");
- }
- Assert.notNull(location, "Redirect URL must not be null");
- this.redirectedUrl = location;
- }
-
- @Override
- public void sendRedirect(String location, String renderUrlParamName) throws IOException {
- sendRedirect(location);
- if (renderUrlParamName != null) {
- // NOTE: Changed since original Spring 4.3.x version.
- // Cannot call setRenderParameter(renderUrlParamName, location) here as it always results in an IllegalStateException - since a redirect has been called.
- // Due to this, we call super.setRenderParameter() directly, otherwise this method can never successfully be called.
- super.setRenderParameter(renderUrlParamName, location);
- }
- }
-
- public String getRedirectedUrl() {
- return this.redirectedUrl;
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockBaseURL.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockBaseURL.java
deleted file mode 100644
index c0a1995e9..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockBaseURL.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.io.Writer;
-import java.net.URLEncoder;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Set;
-import javax.portlet.BaseURL;
-import javax.portlet.PortletSecurityException;
-
-import org.springframework.util.Assert;
-import org.springframework.util.StringUtils;
-
-/**
- * Mock implementation of the {@link javax.portlet.BaseURL} interface.
- *
- * @author Juergen Hoeller
- * @since 3.0
- */
-public abstract class MockBaseURL implements BaseURL {
-
- public static final String URL_TYPE_RENDER = "render";
-
- public static final String URL_TYPE_ACTION = "action";
-
- private static final String ENCODING = "UTF-8";
-
-
- protected final Map parameters = new LinkedHashMap();
-
- private boolean secure = false;
-
- private final Map properties = new LinkedHashMap();
-
-
- //---------------------------------------------------------------------
- // BaseURL methods
- //---------------------------------------------------------------------
-
- @Override
- public void setParameter(String key, String value) {
- Assert.notNull(key, "Parameter key must be null");
- Assert.notNull(value, "Parameter value must not be null");
- this.parameters.put(key, new String[] {value});
- }
-
- @Override
- public void setParameter(String key, String[] values) {
- Assert.notNull(key, "Parameter key must be null");
- Assert.notNull(values, "Parameter values must not be null");
- this.parameters.put(key, values);
- }
-
- @Override
- public void setParameters(Map parameters) {
- Assert.notNull(parameters, "Parameters Map must not be null");
- this.parameters.clear();
- this.parameters.putAll(parameters);
- }
-
- public Set getParameterNames() {
- return this.parameters.keySet();
- }
-
- public String getParameter(String name) {
- String[] arr = this.parameters.get(name);
- return (arr != null && arr.length > 0 ? arr[0] : null);
- }
-
- public String[] getParameterValues(String name) {
- return this.parameters.get(name);
- }
-
- @Override
- public Map getParameterMap() {
- return Collections.unmodifiableMap(this.parameters);
- }
-
- @Override
- public void setSecure(boolean secure) throws PortletSecurityException {
- this.secure = secure;
- }
-
- public boolean isSecure() {
- return this.secure;
- }
-
- @Override
- public void write(Writer out) throws IOException {
- out.write(toString());
- }
-
- @Override
- public void write(Writer out, boolean escapeXML) throws IOException {
- out.write(toString());
- }
-
- @Override
- public void addProperty(String key, String value) {
- String[] values = this.properties.get(key);
- if (values != null) {
- this.properties.put(key, StringUtils.addStringToArray(values, value));
- }
- else {
- this.properties.put(key, new String[] {value});
- }
- }
-
- @Override
- public void setProperty(String key, String value) {
- this.properties.put(key, new String[] {value});
- }
-
- public Map getProperties() {
- return Collections.unmodifiableMap(this.properties);
- }
-
-
- protected String encodeParameter(String name, String value) {
- try {
- return URLEncoder.encode(name, ENCODING) + "=" + URLEncoder.encode(value, ENCODING);
- }
- catch (UnsupportedEncodingException ex) {
- return null;
- }
- }
-
- protected String encodeParameter(String name, String[] values) {
- try {
- StringBuilder sb = new StringBuilder();
- for (int i = 0, n = values.length; i < n; i++) {
- sb.append(i > 0 ? ";" : "").append(URLEncoder.encode(name, ENCODING)).append("=")
- .append(URLEncoder.encode(values[i], ENCODING));
- }
- return sb.toString();
- }
- catch (UnsupportedEncodingException ex) {
- return null;
- }
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockCacheControl.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockCacheControl.java
deleted file mode 100644
index f0ae50ac2..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockCacheControl.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import javax.portlet.CacheControl;
-
-/**
- * Mock implementation of the {@link javax.portlet.CacheControl} interface.
- *
- * @author Juergen Hoeller
- * @since 3.0
- */
-public class MockCacheControl implements CacheControl {
-
- private int expirationTime = 0;
-
- private boolean publicScope = false;
-
- private String etag;
-
- private boolean useCachedContent = false;
-
-
- @Override
- public int getExpirationTime() {
- return this.expirationTime;
- }
-
- @Override
- public void setExpirationTime(int time) {
- this.expirationTime = time;
- }
-
- @Override
- public boolean isPublicScope() {
- return this.publicScope;
- }
-
- @Override
- public void setPublicScope(boolean publicScope) {
- this.publicScope = publicScope;
- }
-
- @Override
- public String getETag() {
- return this.etag;
- }
-
- @Override
- public void setETag(String token) {
- this.etag = token;
- }
-
- @Override
- public boolean useCachedContent() {
- return this.useCachedContent;
- }
-
- @Override
- public void setUseCachedContent(boolean useCachedContent) {
- this.useCachedContent = useCachedContent;
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockClientDataRequest.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockClientDataRequest.java
deleted file mode 100644
index 44792d1de..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockClientDataRequest.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.UnsupportedEncodingException;
-import javax.portlet.ClientDataRequest;
-import javax.portlet.PortalContext;
-import javax.portlet.PortletContext;
-
-/**
- * Mock implementation of the {@link javax.portlet.ClientDataRequest} interface.
- *
- * @author Juergen Hoeller
- * @since 3.0
- */
-public class MockClientDataRequest extends MockPortletRequest implements ClientDataRequest {
-
- private String characterEncoding;
-
- private byte[] content;
-
- private String contentType;
-
- private String method;
-
-
- /**
- * Create a new MockClientDataRequest with a default {@link MockPortalContext}
- * and a default {@link MockPortletContext}.
- * @see org.springframework.mock.web.portlet.MockPortalContext
- * @see org.springframework.mock.web.portlet.MockPortletContext
- */
- public MockClientDataRequest() {
- super();
- }
-
- /**
- * Create a new MockClientDataRequest with a default {@link MockPortalContext}.
- * @param portletContext the PortletContext that the request runs in
- */
- public MockClientDataRequest(PortletContext portletContext) {
- super(portletContext);
- }
-
- /**
- * Create a new MockClientDataRequest.
- * @param portalContext the PortalContext that the request runs in
- * @param portletContext the PortletContext that the request runs in
- */
- public MockClientDataRequest(PortalContext portalContext, PortletContext portletContext) {
- super(portalContext, portletContext);
- }
-
-
- public void setContent(byte[] content) {
- this.content = content;
- }
-
- @Override
- public InputStream getPortletInputStream() throws IOException {
- if (this.content != null) {
- return new ByteArrayInputStream(this.content);
- }
- else {
- return null;
- }
- }
-
- @Override
- public void setCharacterEncoding(String characterEncoding) {
- this.characterEncoding = characterEncoding;
- }
-
- @Override
- public BufferedReader getReader() throws UnsupportedEncodingException {
- if (this.content != null) {
- InputStream sourceStream = new ByteArrayInputStream(this.content);
- Reader sourceReader = (this.characterEncoding != null) ?
- new InputStreamReader(sourceStream, this.characterEncoding) : new InputStreamReader(sourceStream);
- return new BufferedReader(sourceReader);
- }
- else {
- return null;
- }
- }
-
- @Override
- public String getCharacterEncoding() {
- return this.characterEncoding;
- }
-
- public void setContentType(String contentType) {
- this.contentType = contentType;
- }
-
- @Override
- public String getContentType() {
- return this.contentType;
- }
-
- @Override
- public int getContentLength() {
- return (this.content != null ? content.length : -1);
- }
-
- public void setMethod(String method) {
- this.method = method;
- }
-
- @Override
- public String getMethod() {
- return this.method;
- }
-
-}
\ No newline at end of file
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockEvent.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockEvent.java
deleted file mode 100644
index 2e9a41126..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockEvent.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.io.Serializable;
-import javax.portlet.Event;
-import javax.xml.namespace.QName;
-
-/**
- * Mock implementation of the {@link javax.portlet.Event} interface.
- *
- * @author Juergen Hoeller
- * @since 3.0
- * @see MockEventRequest
- */
-public class MockEvent implements Event {
-
- private final QName name;
-
- private final Serializable value;
-
-
- /**
- * Create a new MockEvent with the given name.
- * @param name the name of the event
- */
- public MockEvent(QName name) {
- this.name = name;
- this.value = null;
- }
-
- /**
- * Create a new MockEvent with the given name and value.
- * @param name the name of the event
- * @param value the associated payload of the event
- */
- public MockEvent(QName name, Serializable value) {
- this.name = name;
- this.value = value;
- }
-
- /**
- * Create a new MockEvent with the given name.
- * @param name the name of the event
- */
- public MockEvent(String name) {
- this.name = new QName(name);
- this.value = null;
- }
-
- /**
- * Create a new MockEvent with the given name and value.
- * @param name the name of the event
- * @param value the associated payload of the event
- */
- public MockEvent(String name, Serializable value) {
- this.name = new QName(name);
- this.value = value;
- }
-
-
- @Override
- public QName getQName() {
- return this.name;
- }
-
- @Override
- public String getName() {
- return this.name.getLocalPart();
- }
-
- @Override
- public Serializable getValue() {
- return this.value;
- }
-
-}
\ No newline at end of file
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockEventRequest.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockEventRequest.java
deleted file mode 100644
index c05551137..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockEventRequest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import javax.portlet.Event;
-import javax.portlet.EventRequest;
-import javax.portlet.PortalContext;
-import javax.portlet.PortletContext;
-
-/**
- * Mock implementation of the {@link javax.portlet.EventRequest} interface.
- *
- * @author Juergen Hoeller
- * @since 3.0
- */
-public class MockEventRequest extends MockPortletRequest implements EventRequest {
-
- private final Event event;
-
- private String method;
-
-
- /**
- * Create a new MockEventRequest with a default {@link MockPortalContext}
- * and a default {@link MockPortletContext}.
- * @param event the event that this request wraps
- * @see MockEvent
- */
- public MockEventRequest(Event event) {
- super();
- this.event = event;
- }
-
- /**
- * Create a new MockEventRequest with a default {@link MockPortalContext}.
- * @param event the event that this request wraps
- * @param portletContext the PortletContext that the request runs in
- * @see MockEvent
- */
- public MockEventRequest(Event event, PortletContext portletContext) {
- super(portletContext);
- this.event = event;
- }
-
- /**
- * Create a new MockEventRequest.
- * @param event the event that this request wraps
- * @param portalContext the PortletContext that the request runs in
- * @param portletContext the PortletContext that the request runs in
- */
- public MockEventRequest(Event event, PortalContext portalContext, PortletContext portletContext) {
- super(portalContext, portletContext);
- this.event = event;
- }
-
-
- @Override
- protected String getLifecyclePhase() {
- return EVENT_PHASE;
- }
-
- @Override
- public Event getEvent() {
- return this.event;
- }
-
- public void setMethod(String method) {
- this.method = method;
- }
-
- @Override
- public String getMethod() {
- return this.method;
- }
-
-}
\ No newline at end of file
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockEventResponse.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockEventResponse.java
deleted file mode 100644
index 9bda32e0d..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockEventResponse.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import javax.portlet.EventRequest;
-import javax.portlet.EventResponse;
-
-/**
- * Mock implementation of the {@link javax.portlet.EventResponse} interface.
- *
- * @author Juergen Hoeller
- * @since 3.0
- */
-public class MockEventResponse extends MockStateAwareResponse implements EventResponse {
-
- @Override
- public void setRenderParameters(EventRequest request) {
- setRenderParameters(request.getParameterMap());
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockMimeResponse.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockMimeResponse.java
deleted file mode 100644
index cb654cb6c..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockMimeResponse.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.io.UnsupportedEncodingException;
-import java.io.Writer;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.Locale;
-import javax.portlet.CacheControl;
-import javax.portlet.MimeResponse;
-import javax.portlet.PortalContext;
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletURL;
-import javax.portlet.ResourceURL;
-
-import org.springframework.util.CollectionUtils;
-import org.springframework.web.util.WebUtils;
-
-/**
- * Mock implementation of the {@link javax.portlet.MimeResponse} interface.
- *
- * @author Juergen Hoeller
- * @since 3.0
- */
-public class MockMimeResponse extends MockPortletResponse implements MimeResponse {
-
- private PortletRequest request;
-
- private String contentType;
-
- private String characterEncoding = WebUtils.DEFAULT_CHARACTER_ENCODING;
-
- private PrintWriter writer;
-
- private Locale locale = Locale.getDefault();
-
- private int bufferSize = 4096;
-
- private final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-
- private final CacheControl cacheControl = new MockCacheControl();
-
- private boolean committed;
-
- private String includedUrl;
-
- private String forwardedUrl;
-
-
- /**
- * Create a new MockMimeResponse with a default {@link MockPortalContext}.
- * @see org.springframework.mock.web.portlet.MockPortalContext
- */
- public MockMimeResponse() {
- super();
- }
-
- /**
- * Create a new MockMimeResponse.
- * @param portalContext the PortalContext defining the supported
- * PortletModes and WindowStates
- */
- public MockMimeResponse(PortalContext portalContext) {
- super(portalContext);
- }
-
- /**
- * Create a new MockMimeResponse.
- * @param portalContext the PortalContext defining the supported
- * PortletModes and WindowStates
- * @param request the corresponding render/resource request that this response
- * is being generated for
- */
- public MockMimeResponse(PortalContext portalContext, PortletRequest request) {
- super(portalContext);
- this.request = request;
- }
-
-
- //---------------------------------------------------------------------
- // RenderResponse methods
- //---------------------------------------------------------------------
-
- @Override
- public void setContentType(String contentType) {
- if (this.request != null) {
- Enumeration supportedTypes = this.request.getResponseContentTypes();
- if (!CollectionUtils.contains(supportedTypes, contentType)) {
- throw new IllegalArgumentException("Content type [" + contentType + "] not in supported list: " +
- Collections.list(supportedTypes));
- }
- }
- this.contentType = contentType;
- }
-
- @Override
- public String getContentType() {
- return this.contentType;
- }
-
- public void setCharacterEncoding(String characterEncoding) {
- this.characterEncoding = characterEncoding;
- }
-
- @Override
- public String getCharacterEncoding() {
- return this.characterEncoding;
- }
-
- @Override
- public PrintWriter getWriter() throws UnsupportedEncodingException {
- if (this.writer == null) {
- Writer targetWriter = (this.characterEncoding != null
- ? new OutputStreamWriter(this.outputStream, this.characterEncoding)
- : new OutputStreamWriter(this.outputStream));
- this.writer = new PrintWriter(targetWriter);
- }
- return this.writer;
- }
-
- public byte[] getContentAsByteArray() {
- flushBuffer();
- return this.outputStream.toByteArray();
- }
-
- public String getContentAsString() throws UnsupportedEncodingException {
- flushBuffer();
- return (this.characterEncoding != null)
- ? this.outputStream.toString(this.characterEncoding)
- : this.outputStream.toString();
- }
-
- public void setLocale(Locale locale) {
- this.locale = locale;
- }
-
- @Override
- public Locale getLocale() {
- return this.locale;
- }
-
- @Override
- public void setBufferSize(int bufferSize) {
- this.bufferSize = bufferSize;
- }
-
- @Override
- public int getBufferSize() {
- return this.bufferSize;
- }
-
- @Override
- public void flushBuffer() {
- if (this.writer != null) {
- this.writer.flush();
- }
- if (this.outputStream != null) {
- try {
- this.outputStream.flush();
- }
- catch (IOException ex) {
- throw new IllegalStateException("Could not flush OutputStream: " + ex.getMessage());
- }
- }
- this.committed = true;
- }
-
- @Override
- public void resetBuffer() {
- if (this.committed) {
- throw new IllegalStateException("Cannot reset buffer - response is already committed");
- }
- this.outputStream.reset();
- }
-
- public void setCommitted(boolean committed) {
- this.committed = committed;
- }
-
- @Override
- public boolean isCommitted() {
- return this.committed;
- }
-
- @Override
- public void reset() {
- resetBuffer();
- this.characterEncoding = null;
- this.contentType = null;
- this.locale = null;
- }
-
- @Override
- public OutputStream getPortletOutputStream() throws IOException {
- return this.outputStream;
- }
-
- @Override
- public PortletURL createRenderURL() {
- return new MockPortletURL(getPortalContext(), MockPortletURL.URL_TYPE_RENDER);
- }
-
- @Override
- public PortletURL createActionURL() {
- return new MockPortletURL(getPortalContext(), MockPortletURL.URL_TYPE_ACTION);
- }
-
- @Override
- public ResourceURL createResourceURL() {
- return new MockResourceURL();
- }
-
- @Override
- public CacheControl getCacheControl() {
- return this.cacheControl;
- }
-
-
- //---------------------------------------------------------------------
- // Methods for MockPortletRequestDispatcher
- //---------------------------------------------------------------------
-
- public void setIncludedUrl(String includedUrl) {
- this.includedUrl = includedUrl;
- }
-
- public String getIncludedUrl() {
- return this.includedUrl;
- }
-
- public void setForwardedUrl(String forwardedUrl) {
- this.forwardedUrl = forwardedUrl;
- }
-
- public String getForwardedUrl() {
- return this.forwardedUrl;
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockMultipartActionRequest.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockMultipartActionRequest.java
deleted file mode 100644
index 396e8cfd3..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockMultipartActionRequest.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.util.Assert;
-import org.springframework.util.LinkedMultiValueMap;
-import org.springframework.util.MultiValueMap;
-import org.springframework.web.multipart.MultipartFile;
-import org.apache.struts2.mock.web.portlet.multipart.MultipartActionRequest;
-
-/**
- * Mock implementation of the
- * {@link org.springframework.web.portlet.multipart.MultipartActionRequest} interface.
- *
- *
Useful for testing application controllers that access multipart uploads.
- * The {@link org.springframework.mock.web.MockMultipartFile} can be used to
- * populate these mock requests with files.
- *
- * @author Juergen Hoeller
- * @author Arjen Poutsma
- * @since 2.0
- * @see org.springframework.mock.web.MockMultipartFile
- */
-public class MockMultipartActionRequest extends MockActionRequest implements MultipartActionRequest {
-
- private final MultiValueMap multipartFiles =
- new LinkedMultiValueMap();
-
-
- /**
- * Add a file to this request. The parameter name from the multipart
- * form is taken from the {@link org.springframework.web.multipart.MultipartFile#getName()}.
- * @param file multipart file to be added
- */
- public void addFile(MultipartFile file) {
- Assert.notNull(file, "MultipartFile must not be null");
- this.multipartFiles.add(file.getName(), file);
- }
-
- @Override
- public Iterator getFileNames() {
- return this.multipartFiles.keySet().iterator();
- }
-
- @Override
- public MultipartFile getFile(String name) {
- return this.multipartFiles.getFirst(name);
- }
-
- @Override
- public List getFiles(String name) {
- List multipartFiles = this.multipartFiles.get(name);
- if (multipartFiles != null) {
- return multipartFiles;
- }
- else {
- return Collections.emptyList();
- }
- }
-
- @Override
- public Map getFileMap() {
- return this.multipartFiles.toSingleValueMap();
- }
-
- @Override
- public MultiValueMap getMultiFileMap() {
- return new LinkedMultiValueMap(this.multipartFiles);
- }
-
- @Override
- public String getMultipartContentType(String paramOrFileName) {
- MultipartFile file = getFile(paramOrFileName);
- if (file != null) {
- return file.getContentType();
- }
- else {
- return null;
- }
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortalContext.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortalContext.java
deleted file mode 100644
index 0c7eccf5e..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortalContext.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import javax.portlet.PortalContext;
-import javax.portlet.PortletMode;
-import javax.portlet.WindowState;
-
-/**
- * Mock implementation of the {@link javax.portlet.PortalContext} interface.
- *
- * @author John A. Lewis
- * @author Juergen Hoeller
- * @since 2.0
- */
-public class MockPortalContext implements PortalContext {
-
- private final Map properties = new HashMap();
-
- private final List portletModes;
-
- private final List windowStates;
-
-
- /**
- * Create a new MockPortalContext
- * with default PortletModes (VIEW, EDIT, HELP)
- * and default WindowStates (NORMAL, MAXIMIZED, MINIMIZED).
- * @see javax.portlet.PortletMode
- * @see javax.portlet.WindowState
- */
- public MockPortalContext() {
- this.portletModes = new ArrayList(3);
- this.portletModes.add(PortletMode.VIEW);
- this.portletModes.add(PortletMode.EDIT);
- this.portletModes.add(PortletMode.HELP);
-
- this.windowStates = new ArrayList(3);
- this.windowStates.add(WindowState.NORMAL);
- this.windowStates.add(WindowState.MAXIMIZED);
- this.windowStates.add(WindowState.MINIMIZED);
- }
-
- /**
- * Create a new MockPortalContext with the given PortletModes and WindowStates.
- * @param supportedPortletModes the List of supported PortletMode instances
- * @param supportedWindowStates the List of supported WindowState instances
- * @see javax.portlet.PortletMode
- * @see javax.portlet.WindowState
- */
- public MockPortalContext(List supportedPortletModes, List supportedWindowStates) {
- this.portletModes = new ArrayList(supportedPortletModes);
- this.windowStates = new ArrayList(supportedWindowStates);
- }
-
-
- @Override
- public String getPortalInfo() {
- return "MockPortal/1.0";
- }
-
- public void setProperty(String name, String value) {
- this.properties.put(name, value);
- }
-
- @Override
- public String getProperty(String name) {
- return this.properties.get(name);
- }
-
- @Override
- public Enumeration getPropertyNames() {
- return Collections.enumeration(this.properties.keySet());
- }
-
- @Override
- public Enumeration getSupportedPortletModes() {
- return Collections.enumeration(this.portletModes);
- }
-
- @Override
- public Enumeration getSupportedWindowStates() {
- return Collections.enumeration(this.windowStates);
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletConfig.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletConfig.java
deleted file mode 100644
index 33d7e901c..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletConfig.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.Locale;
-import java.util.Map;
-import java.util.ResourceBundle;
-import java.util.Set;
-import javax.portlet.PortletConfig;
-import javax.portlet.PortletContext;
-import javax.xml.XMLConstants;
-import javax.xml.namespace.QName;
-
-import org.springframework.util.Assert;
-
-/**
- * Mock implementation of the {@link javax.portlet.PortletConfig} interface.
- *
- * @author John A. Lewis
- * @author Juergen Hoeller
- * @since 2.0
- */
-public class MockPortletConfig implements PortletConfig {
-
- private final PortletContext portletContext;
-
- private final String portletName;
-
- private final Map resourceBundles = new HashMap();
-
- private final Map initParameters = new LinkedHashMap();
-
- private final Set publicRenderParameterNames = new LinkedHashSet();
-
- private String defaultNamespace = XMLConstants.NULL_NS_URI;
-
- private final Set publishingEventQNames = new LinkedHashSet();
-
- private final Set processingEventQNames = new LinkedHashSet();
-
- private final Set supportedLocales = new LinkedHashSet();
-
- private final Map containerRuntimeOptions = new LinkedHashMap();
-
-
- /**
- * Create a new MockPortletConfig with a default {@link MockPortletContext}.
- */
- public MockPortletConfig() {
- this(null, "");
- }
-
- /**
- * Create a new MockPortletConfig with a default {@link MockPortletContext}.
- * @param portletName the name of the portlet
- */
- public MockPortletConfig(String portletName) {
- this(null, portletName);
- }
-
- /**
- * Create a new MockPortletConfig.
- * @param portletContext the PortletContext that the portlet runs in
- */
- public MockPortletConfig(PortletContext portletContext) {
- this(portletContext, "");
- }
-
- /**
- * Create a new MockPortletConfig.
- * @param portletContext the PortletContext that the portlet runs in
- * @param portletName the name of the portlet
- */
- public MockPortletConfig(PortletContext portletContext, String portletName) {
- this.portletContext = (portletContext != null ? portletContext : new MockPortletContext());
- this.portletName = portletName;
- }
-
-
- @Override
- public String getPortletName() {
- return this.portletName;
- }
-
- @Override
- public PortletContext getPortletContext() {
- return this.portletContext;
- }
-
- public void setResourceBundle(Locale locale, ResourceBundle resourceBundle) {
- Assert.notNull(locale, "Locale must not be null");
- this.resourceBundles.put(locale, resourceBundle);
- }
-
- @Override
- public ResourceBundle getResourceBundle(Locale locale) {
- Assert.notNull(locale, "Locale must not be null");
- return this.resourceBundles.get(locale);
- }
-
- public void addInitParameter(String name, String value) {
- Assert.notNull(name, "Parameter name must not be null");
- this.initParameters.put(name, value);
- }
-
- @Override
- public String getInitParameter(String name) {
- Assert.notNull(name, "Parameter name must not be null");
- return this.initParameters.get(name);
- }
-
- @Override
- public Enumeration getInitParameterNames() {
- return Collections.enumeration(this.initParameters.keySet());
- }
-
- public void addPublicRenderParameterName(String name) {
- this.publicRenderParameterNames.add(name);
- }
-
- @Override
- public Enumeration getPublicRenderParameterNames() {
- return Collections.enumeration(this.publicRenderParameterNames);
- }
-
- public void setDefaultNamespace(String defaultNamespace) {
- this.defaultNamespace = defaultNamespace;
- }
-
- @Override
- public String getDefaultNamespace() {
- return this.defaultNamespace;
- }
-
- public void addPublishingEventQName(QName name) {
- this.publishingEventQNames.add(name);
- }
-
- @Override
- public Enumeration getPublishingEventQNames() {
- return Collections.enumeration(this.publishingEventQNames);
- }
-
- public void addProcessingEventQName(QName name) {
- this.processingEventQNames.add(name);
- }
-
- @Override
- public Enumeration getProcessingEventQNames() {
- return Collections.enumeration(this.processingEventQNames);
- }
-
- public void addSupportedLocale(Locale locale) {
- this.supportedLocales.add(locale);
- }
-
- @Override
- public Enumeration getSupportedLocales() {
- return Collections.enumeration(this.supportedLocales);
- }
-
- public void addContainerRuntimeOption(String key, String value) {
- this.containerRuntimeOptions.put(key, new String[] {value});
- }
-
- public void addContainerRuntimeOption(String key, String[] values) {
- this.containerRuntimeOptions.put(key, values);
- }
-
- @Override
- public Map getContainerRuntimeOptions() {
- return Collections.unmodifiableMap(this.containerRuntimeOptions);
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletContext.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletContext.java
deleted file mode 100644
index 3cf0a5d47..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletContext.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-import javax.portlet.PortletContext;
-import javax.portlet.PortletRequestDispatcher;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.springframework.core.io.DefaultResourceLoader;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.ResourceLoader;
-import org.springframework.util.Assert;
-import org.springframework.web.util.WebUtils;
-
-/**
- * Mock implementation of the {@link javax.portlet.PortletContext} interface.
- *
- * @author John A. Lewis
- * @author Juergen Hoeller
- * @since 2.0
- */
-public class MockPortletContext implements PortletContext {
-
- private static final String TEMP_DIR_SYSTEM_PROPERTY = "java.io.tmpdir";
-
-
- private final Log logger = LogFactory.getLog(getClass());
-
- private final String resourceBasePath;
-
- private final ResourceLoader resourceLoader;
-
- private final Map attributes = new LinkedHashMap();
-
- private final Map initParameters = new LinkedHashMap();
-
- private String portletContextName = "MockPortletContext";
-
- private Set containerRuntimeOptions = new LinkedHashSet();
-
-
- /**
- * Create a new MockPortletContext with no base path and a
- * DefaultResourceLoader (i.e. the classpath root as WAR root).
- * @see org.springframework.core.io.DefaultResourceLoader
- */
- public MockPortletContext() {
- this("", null);
- }
-
- /**
- * Create a new MockPortletContext using a DefaultResourceLoader.
- * @param resourceBasePath the WAR root directory (should not end with a slash)
- * @see org.springframework.core.io.DefaultResourceLoader
- */
- public MockPortletContext(String resourceBasePath) {
- this(resourceBasePath, null);
- }
-
- /**
- * Create a new MockPortletContext, using the specified ResourceLoader
- * and no base path.
- * @param resourceLoader the ResourceLoader to use (or null for the default)
- */
- public MockPortletContext(ResourceLoader resourceLoader) {
- this("", resourceLoader);
- }
-
- /**
- * Create a new MockPortletContext.
- * @param resourceBasePath the WAR root directory (should not end with a slash)
- * @param resourceLoader the ResourceLoader to use (or null for the default)
- */
- public MockPortletContext(String resourceBasePath, ResourceLoader resourceLoader) {
- this.resourceBasePath = (resourceBasePath != null ? resourceBasePath : "");
- this.resourceLoader = (resourceLoader != null ? resourceLoader : new DefaultResourceLoader());
-
- // Use JVM temp dir as PortletContext temp dir.
- String tempDir = System.getProperty(TEMP_DIR_SYSTEM_PROPERTY);
- if (tempDir != null) {
- this.attributes.put(WebUtils.TEMP_DIR_CONTEXT_ATTRIBUTE, new File(tempDir));
- }
- }
-
- /**
- * Build a full resource location for the given path,
- * prepending the resource base path of this MockPortletContext.
- * @param path the path as specified
- * @return the full resource path
- */
- protected String getResourceLocation(String path) {
- if (!path.startsWith("/")) {
- path = "/" + path;
- }
- return this.resourceBasePath + path;
- }
-
-
- @Override
- public String getServerInfo() {
- return "MockPortal/1.0";
- }
-
- @Override
- public PortletRequestDispatcher getRequestDispatcher(String path) {
- if (!path.startsWith("/")) {
- throw new IllegalArgumentException(
- "PortletRequestDispatcher path at PortletContext level must start with '/'");
- }
- return new MockPortletRequestDispatcher(path);
- }
-
- @Override
- public PortletRequestDispatcher getNamedDispatcher(String path) {
- return null;
- }
-
- @Override
- public InputStream getResourceAsStream(String path) {
- Resource resource = this.resourceLoader.getResource(getResourceLocation(path));
- try {
- return resource.getInputStream();
- }
- catch (IOException ex) {
- logger.info("Couldn't open InputStream for " + resource, ex);
- return null;
- }
- }
-
- @Override
- public int getMajorVersion() {
- return 2;
- }
-
- @Override
- public int getMinorVersion() {
- return 0;
- }
-
- @Override
- public String getMimeType(String filePath) {
- return null;
- }
-
- @Override
- public String getRealPath(String path) {
- Resource resource = this.resourceLoader.getResource(getResourceLocation(path));
- try {
- return resource.getFile().getAbsolutePath();
- }
- catch (IOException ex) {
- logger.info("Couldn't determine real path of resource " + resource, ex);
- return null;
- }
- }
-
- @Override
- public Set getResourcePaths(String path) {
- Resource resource = this.resourceLoader.getResource(getResourceLocation(path));
- try {
- File file = resource.getFile();
- String[] fileList = file.list();
- String prefix = (path.endsWith("/") ? path : path + "/");
- Set resourcePaths = new HashSet(fileList.length);
- for (String fileEntry : fileList) {
- resourcePaths.add(prefix + fileEntry);
- }
- return resourcePaths;
- }
- catch (IOException ex) {
- logger.info("Couldn't get resource paths for " + resource, ex);
- return null;
- }
- }
-
- @Override
- public URL getResource(String path) throws MalformedURLException {
- Resource resource = this.resourceLoader.getResource(getResourceLocation(path));
- try {
- return resource.getURL();
- }
- catch (IOException ex) {
- logger.info("Couldn't get URL for " + resource, ex);
- return null;
- }
- }
-
- @Override
- public Object getAttribute(String name) {
- return this.attributes.get(name);
- }
-
- @Override
- public Enumeration getAttributeNames() {
- return Collections.enumeration(this.attributes.keySet());
- }
-
- @Override
- public void setAttribute(String name, Object value) {
- if (value != null) {
- this.attributes.put(name, value);
- }
- else {
- this.attributes.remove(name);
- }
- }
-
- @Override
- public void removeAttribute(String name) {
- this.attributes.remove(name);
- }
-
- public void addInitParameter(String name, String value) {
- Assert.notNull(name, "Parameter name must not be null");
- this.initParameters.put(name, value);
- }
-
- @Override
- public String getInitParameter(String name) {
- Assert.notNull(name, "Parameter name must not be null");
- return this.initParameters.get(name);
- }
-
- @Override
- public Enumeration getInitParameterNames() {
- return Collections.enumeration(this.initParameters.keySet());
- }
-
- @Override
- public void log(String message) {
- logger.info(message);
- }
-
- @Override
- public void log(String message, Throwable t) {
- logger.info(message, t);
- }
-
- public void setPortletContextName(String portletContextName) {
- this.portletContextName = portletContextName;
- }
-
- @Override
- public String getPortletContextName() {
- return this.portletContextName;
- }
-
- public void addContainerRuntimeOption(String key) {
- this.containerRuntimeOptions.add(key);
- }
-
- @Override
- public Enumeration getContainerRuntimeOptions() {
- return Collections.enumeration(this.containerRuntimeOptions);
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletPreferences.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletPreferences.java
deleted file mode 100644
index 60ceca2bf..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletPreferences.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright 2002-2009 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.io.IOException;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Set;
-import javax.portlet.PortletPreferences;
-import javax.portlet.PreferencesValidator;
-import javax.portlet.ReadOnlyException;
-import javax.portlet.ValidatorException;
-
-import org.springframework.util.Assert;
-
-/**
- * Mock implementation of the {@link javax.portlet.PortletPreferences} interface.
- *
- * @author John A. Lewis
- * @author Juergen Hoeller
- * @since 2.0
- */
-public class MockPortletPreferences implements PortletPreferences {
-
- private PreferencesValidator preferencesValidator;
-
- private final Map preferences = new LinkedHashMap();
-
- private final Set readOnly = new HashSet();
-
-
- public void setReadOnly(String key, boolean readOnly) {
- Assert.notNull(key, "Key must not be null");
- if (readOnly) {
- this.readOnly.add(key);
- }
- else {
- this.readOnly.remove(key);
- }
- }
-
- @Override
- public boolean isReadOnly(String key) {
- Assert.notNull(key, "Key must not be null");
- return this.readOnly.contains(key);
- }
-
- @Override
- public String getValue(String key, String def) {
- Assert.notNull(key, "Key must not be null");
- String[] values = this.preferences.get(key);
- return (values != null && values.length > 0 ? values[0] : def);
- }
-
- @Override
- public String[] getValues(String key, String[] def) {
- Assert.notNull(key, "Key must not be null");
- String[] values = this.preferences.get(key);
- return (values != null && values.length > 0 ? values : def);
- }
-
- @Override
- public void setValue(String key, String value) throws ReadOnlyException {
- setValues(key, new String[] {value});
- }
-
- @Override
- public void setValues(String key, String[] values) throws ReadOnlyException {
- Assert.notNull(key, "Key must not be null");
- if (isReadOnly(key)) {
- throw new ReadOnlyException("Preference '" + key + "' is read-only");
- }
- this.preferences.put(key, values);
- }
-
- @Override
- public Enumeration getNames() {
- return Collections.enumeration(this.preferences.keySet());
- }
-
- @Override
- public Map getMap() {
- return Collections.unmodifiableMap(this.preferences);
- }
-
- @Override
- public void reset(String key) throws ReadOnlyException {
- Assert.notNull(key, "Key must not be null");
- if (isReadOnly(key)) {
- throw new ReadOnlyException("Preference '" + key + "' is read-only");
- }
- this.preferences.remove(key);
- }
-
- public void setPreferencesValidator(PreferencesValidator preferencesValidator) {
- this.preferencesValidator = preferencesValidator;
- }
-
- @Override
- public void store() throws IOException, ValidatorException {
- if (this.preferencesValidator != null) {
- this.preferencesValidator.validate(this);
- }
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletRequest.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletRequest.java
deleted file mode 100644
index ffa226e7c..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletRequest.java
+++ /dev/null
@@ -1,565 +0,0 @@
-/*
- * Copyright 2002-2014 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.security.Principal;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-import javax.portlet.PortalContext;
-import javax.portlet.PortletContext;
-import javax.portlet.PortletMode;
-import javax.portlet.PortletPreferences;
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletSession;
-import javax.portlet.WindowState;
-import jakarta.servlet.http.Cookie;
-
-import org.springframework.util.Assert;
-import org.springframework.util.CollectionUtils;
-
-/**
- * Mock implementation of the {@link javax.portlet.PortletRequest} interface.
- *
- * @author John A. Lewis
- * @author Juergen Hoeller
- * @since 2.0
- */
-public class MockPortletRequest implements PortletRequest {
-
- private boolean active = true;
-
- private final PortalContext portalContext;
-
- private final PortletContext portletContext;
-
- private PortletSession session;
-
- private WindowState windowState = WindowState.NORMAL;
-
- private PortletMode portletMode = PortletMode.VIEW;
-
- private PortletPreferences portletPreferences = new MockPortletPreferences();
-
- private final Map> properties = new LinkedHashMap>();
-
- private final Map attributes = new LinkedHashMap();
-
- private final Map parameters = new LinkedHashMap();
-
- private String authType = null;
-
- private String contextPath = "";
-
- private String remoteUser = null;
-
- private Principal userPrincipal = null;
-
- private final Set userRoles = new HashSet();
-
- private boolean secure = false;
-
- private boolean requestedSessionIdValid = true;
-
- private final List responseContentTypes = new LinkedList();
-
- private final List locales = new LinkedList();
-
- private String scheme = "http";
-
- private String serverName = "localhost";
-
- private int serverPort = 80;
-
- private String windowID;
-
- private Cookie[] cookies;
-
- private final Set publicParameterNames = new HashSet();
-
-
- /**
- * Create a new MockPortletRequest with a default {@link MockPortalContext}
- * and a default {@link MockPortletContext}.
- * @see MockPortalContext
- * @see MockPortletContext
- */
- public MockPortletRequest() {
- this(null, null);
- }
-
- /**
- * Create a new MockPortletRequest with a default {@link MockPortalContext}.
- * @param portletContext the PortletContext that the request runs in
- * @see MockPortalContext
- */
- public MockPortletRequest(PortletContext portletContext) {
- this(null, portletContext);
- }
-
- /**
- * Create a new MockPortletRequest.
- * @param portalContext the PortalContext that the request runs in
- * @param portletContext the PortletContext that the request runs in
- */
- public MockPortletRequest(PortalContext portalContext, PortletContext portletContext) {
- this.portalContext = (portalContext != null ? portalContext : new MockPortalContext());
- this.portletContext = (portletContext != null ? portletContext : new MockPortletContext());
- this.responseContentTypes.add("text/html");
- this.locales.add(Locale.ENGLISH);
- this.attributes.put(LIFECYCLE_PHASE, getLifecyclePhase());
- }
-
-
- //---------------------------------------------------------------------
- // Lifecycle methods
- //---------------------------------------------------------------------
-
- /**
- * Return the Portlet 2.0 lifecycle id for the current phase.
- */
- protected String getLifecyclePhase() {
- return null;
- }
-
- /**
- * Return whether this request is still active (that is, not completed yet).
- */
- public boolean isActive() {
- return this.active;
- }
-
- /**
- * Mark this request as completed.
- */
- public void close() {
- this.active = false;
- }
-
- /**
- * Check whether this request is still active (that is, not completed yet),
- * throwing an IllegalStateException if not active anymore.
- */
- protected void checkActive() throws IllegalStateException {
- if (!this.active) {
- throw new IllegalStateException("Request is not active anymore");
- }
- }
-
-
- //---------------------------------------------------------------------
- // PortletRequest methods
- //---------------------------------------------------------------------
-
- @Override
- public boolean isWindowStateAllowed(WindowState windowState) {
- return CollectionUtils.contains(this.portalContext.getSupportedWindowStates(), windowState);
- }
-
- @Override
- public boolean isPortletModeAllowed(PortletMode portletMode) {
- return CollectionUtils.contains(this.portalContext.getSupportedPortletModes(), portletMode);
- }
-
- public void setPortletMode(PortletMode portletMode) {
- Assert.notNull(portletMode, "PortletMode must not be null");
- this.portletMode = portletMode;
- }
-
- @Override
- public PortletMode getPortletMode() {
- return this.portletMode;
- }
-
- public void setWindowState(WindowState windowState) {
- Assert.notNull(windowState, "WindowState must not be null");
- this.windowState = windowState;
- }
-
- @Override
- public WindowState getWindowState() {
- return this.windowState;
- }
-
- public void setPreferences(PortletPreferences preferences) {
- Assert.notNull(preferences, "PortletPreferences must not be null");
- this.portletPreferences = preferences;
- }
-
- @Override
- public PortletPreferences getPreferences() {
- return this.portletPreferences;
- }
-
- public void setSession(PortletSession session) {
- this.session = session;
- if (session instanceof MockPortletSession) {
- MockPortletSession mockSession = ((MockPortletSession) session);
- mockSession.access();
- }
- }
-
- @Override
- public PortletSession getPortletSession() {
- return getPortletSession(true);
- }
-
- @Override
- public PortletSession getPortletSession(boolean create) {
- checkActive();
- // Reset session if invalidated.
- if (this.session instanceof MockPortletSession && ((MockPortletSession) this.session).isInvalid()) {
- this.session = null;
- }
- // Create new session if necessary.
- if (this.session == null && create) {
- this.session = new MockPortletSession(this.portletContext);
- }
- return this.session;
- }
-
- /**
- * Set a single value for the specified property.
- *
If there are already one or more values registered for the given
- * property key, they will be replaced.
- */
- public void setProperty(String key, String value) {
- Assert.notNull(key, "Property key must not be null");
- List list = new LinkedList();
- list.add(value);
- this.properties.put(key, list);
- }
-
- /**
- * Add a single value for the specified property.
- *
If there are already one or more values registered for the given
- * property key, the given value will be added to the end of the list.
- */
- public void addProperty(String key, String value) {
- Assert.notNull(key, "Property key must not be null");
- List oldList = this.properties.get(key);
- if (oldList != null) {
- oldList.add(value);
- }
- else {
- List list = new LinkedList();
- list.add(value);
- this.properties.put(key, list);
- }
- }
-
- @Override
- public String getProperty(String key) {
- Assert.notNull(key, "Property key must not be null");
- List list = this.properties.get(key);
- return (list != null && list.size() > 0 ? list.get(0) : null);
- }
-
- @Override
- public Enumeration getProperties(String key) {
- Assert.notNull(key, "property key must not be null");
- return Collections.enumeration(this.properties.get(key));
- }
-
- @Override
- public Enumeration getPropertyNames() {
- return Collections.enumeration(this.properties.keySet());
- }
-
- @Override
- public PortalContext getPortalContext() {
- return this.portalContext;
- }
-
- public void setAuthType(String authType) {
- this.authType = authType;
- }
-
- @Override
- public String getAuthType() {
- return this.authType;
- }
-
- public void setContextPath(String contextPath) {
- this.contextPath = contextPath;
- }
-
- @Override
- public String getContextPath() {
- return this.contextPath;
- }
-
- public void setRemoteUser(String remoteUser) {
- this.remoteUser = remoteUser;
- }
-
- @Override
- public String getRemoteUser() {
- return this.remoteUser;
- }
-
- public void setUserPrincipal(Principal userPrincipal) {
- this.userPrincipal = userPrincipal;
- }
-
- @Override
- public Principal getUserPrincipal() {
- return this.userPrincipal;
- }
-
- public void addUserRole(String role) {
- this.userRoles.add(role);
- }
-
- @Override
- public boolean isUserInRole(String role) {
- return this.userRoles.contains(role);
- }
-
- @Override
- public Object getAttribute(String name) {
- checkActive();
- return this.attributes.get(name);
- }
-
- @Override
- public Enumeration getAttributeNames() {
- checkActive();
- return Collections.enumeration(this.attributes.keySet());
- }
-
- public void setParameters(Map parameters) {
- Assert.notNull(parameters, "Parameters Map must not be null");
- this.parameters.clear();
- this.parameters.putAll(parameters);
- }
-
- public void setParameter(String key, String value) {
- Assert.notNull(key, "Parameter key must be null");
- Assert.notNull(value, "Parameter value must not be null");
- this.parameters.put(key, new String[] {value});
- }
-
- public void setParameter(String key, String[] values) {
- Assert.notNull(key, "Parameter key must be null");
- Assert.notNull(values, "Parameter values must not be null");
- this.parameters.put(key, values);
- }
-
- public void addParameter(String name, String value) {
- addParameter(name, new String[] {value});
- }
-
- public void addParameter(String name, String[] values) {
- String[] oldArr = this.parameters.get(name);
- if (oldArr != null) {
- String[] newArr = new String[oldArr.length + values.length];
- System.arraycopy(oldArr, 0, newArr, 0, oldArr.length);
- System.arraycopy(values, 0, newArr, oldArr.length, values.length);
- this.parameters.put(name, newArr);
- }
- else {
- this.parameters.put(name, values);
- }
- }
-
- @Override
- public String getParameter(String name) {
- String[] arr = this.parameters.get(name);
- return (arr != null && arr.length > 0 ? arr[0] : null);
- }
-
- @Override
- public Enumeration getParameterNames() {
- return Collections.enumeration(this.parameters.keySet());
- }
-
- @Override
- public String[] getParameterValues(String name) {
- return this.parameters.get(name);
- }
-
- @Override
- public Map getParameterMap() {
- return Collections.unmodifiableMap(this.parameters);
- }
-
- public void setSecure(boolean secure) {
- this.secure = secure;
- }
-
- @Override
- public boolean isSecure() {
- return this.secure;
- }
-
- @Override
- public void setAttribute(String name, Object value) {
- checkActive();
- if (value != null) {
- this.attributes.put(name, value);
- }
- else {
- this.attributes.remove(name);
- }
- }
-
- @Override
- public void removeAttribute(String name) {
- checkActive();
- this.attributes.remove(name);
- }
-
- @Override
- public String getRequestedSessionId() {
- PortletSession session = this.getPortletSession();
- return (session != null ? session.getId() : null);
- }
-
- public void setRequestedSessionIdValid(boolean requestedSessionIdValid) {
- this.requestedSessionIdValid = requestedSessionIdValid;
- }
-
- @Override
- public boolean isRequestedSessionIdValid() {
- return this.requestedSessionIdValid;
- }
-
- public void addResponseContentType(String responseContentType) {
- this.responseContentTypes.add(responseContentType);
- }
-
- public void addPreferredResponseContentType(String responseContentType) {
- this.responseContentTypes.add(0, responseContentType);
- }
-
- @Override
- public String getResponseContentType() {
- return this.responseContentTypes.get(0);
- }
-
- @Override
- public Enumeration getResponseContentTypes() {
- return Collections.enumeration(this.responseContentTypes);
- }
-
- public void addLocale(Locale locale) {
- this.locales.add(locale);
- }
-
- public void addPreferredLocale(Locale locale) {
- this.locales.add(0, locale);
- }
-
- @Override
- public Locale getLocale() {
- return this.locales.get(0);
- }
-
- @Override
- public Enumeration getLocales() {
- return Collections.enumeration(this.locales);
- }
-
- public void setScheme(String scheme) {
- this.scheme = scheme;
- }
-
- @Override
- public String getScheme() {
- return this.scheme;
- }
-
- public void setServerName(String serverName) {
- this.serverName = serverName;
- }
-
- @Override
- public String getServerName() {
- return this.serverName;
- }
-
- public void setServerPort(int serverPort) {
- this.serverPort = serverPort;
- }
-
- @Override
- public int getServerPort() {
- return this.serverPort;
- }
-
- public void setWindowID(String windowID) {
- this.windowID = windowID;
- }
-
- @Override
- public String getWindowID() {
- return this.windowID;
- }
-
- public void setCookies(Cookie... cookies) {
- this.cookies = cookies;
- }
-
- @Override
- public Cookie[] getCookies() {
- return this.cookies;
- }
-
- @Override
- public Map getPrivateParameterMap() {
- if (!this.publicParameterNames.isEmpty()) {
- Map filtered = new LinkedHashMap();
- for (String key : this.parameters.keySet()) {
- if (!this.publicParameterNames.contains(key)) {
- filtered.put(key, this.parameters.get(key));
- }
- }
- return filtered;
- }
- else {
- return Collections.unmodifiableMap(this.parameters);
- }
- }
-
- @Override
- public Map getPublicParameterMap() {
- if (!this.publicParameterNames.isEmpty()) {
- Map filtered = new LinkedHashMap();
- for (String key : this.parameters.keySet()) {
- if (this.publicParameterNames.contains(key)) {
- filtered.put(key, this.parameters.get(key));
- }
- }
- return filtered;
- }
- else {
- return Collections.emptyMap();
- }
- }
-
- public void registerPublicParameter(String name) {
- this.publicParameterNames.add(name);
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletRequestDispatcher.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletRequestDispatcher.java
deleted file mode 100644
index e80f774a6..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletRequestDispatcher.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.io.IOException;
-import javax.portlet.PortletException;
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletRequestDispatcher;
-import javax.portlet.PortletResponse;
-import javax.portlet.RenderRequest;
-import javax.portlet.RenderResponse;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.springframework.util.Assert;
-
-/**
- * Mock implementation of the {@link javax.portlet.PortletRequestDispatcher} interface.
- *
- * @author John A. Lewis
- * @author Juergen Hoeller
- * @since 2.0
- */
-public class MockPortletRequestDispatcher implements PortletRequestDispatcher {
-
- private final Log logger = LogFactory.getLog(getClass());
-
- private final String url;
-
-
- /**
- * Create a new MockPortletRequestDispatcher for the given URL.
- * @param url the URL to dispatch to.
- */
- public MockPortletRequestDispatcher(String url) {
- Assert.notNull(url, "URL must not be null");
- this.url = url;
- }
-
-
- @Override
- public void include(RenderRequest request, RenderResponse response) throws PortletException, IOException {
- include((PortletRequest) request, (PortletResponse) response);
- }
-
- @Override
- public void include(PortletRequest request, PortletResponse response) throws PortletException, IOException {
- Assert.notNull(request, "Request must not be null");
- Assert.notNull(response, "Response must not be null");
- if (!(response instanceof MockMimeResponse)) {
- throw new IllegalArgumentException("MockPortletRequestDispatcher requires MockMimeResponse");
- }
- ((MockMimeResponse) response).setIncludedUrl(this.url);
- if (logger.isDebugEnabled()) {
- logger.debug("MockPortletRequestDispatcher: including URL [" + this.url + "]");
- }
- }
-
- @Override
- public void forward(PortletRequest request, PortletResponse response) throws PortletException, IOException {
- Assert.notNull(request, "Request must not be null");
- Assert.notNull(response, "Response must not be null");
- if (!(response instanceof MockMimeResponse)) {
- throw new IllegalArgumentException("MockPortletRequestDispatcher requires MockMimeResponse");
- }
- ((MockMimeResponse) response).setForwardedUrl(this.url);
- if (logger.isDebugEnabled()) {
- logger.debug("MockPortletRequestDispatcher: forwarding to URL [" + this.url + "]");
- }
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletResponse.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletResponse.java
deleted file mode 100644
index 93978a6d5..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletResponse.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-import javax.portlet.PortalContext;
-import javax.portlet.PortletResponse;
-import jakarta.servlet.http.Cookie;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-import org.springframework.util.Assert;
-
-/**
- * Mock implementation of the {@link javax.portlet.PortletResponse} interface.
- *
- * @author John A. Lewis
- * @author Juergen Hoeller
- * @since 2.0
- */
-public class MockPortletResponse implements PortletResponse {
-
- private final PortalContext portalContext;
-
- private final Map properties = new LinkedHashMap();
-
- private String namespace = "";
-
- private final Set cookies = new LinkedHashSet();
-
- private final Map xmlProperties = new LinkedHashMap();
-
- private Document xmlDocument;
-
-
- /**
- * Create a new MockPortletResponse with a default {@link MockPortalContext}.
- * @see MockPortalContext
- */
- public MockPortletResponse() {
- this(null);
- }
-
- /**
- * Create a new MockPortletResponse.
- * @param portalContext the PortalContext defining the supported
- * PortletModes and WindowStates
- */
- public MockPortletResponse(PortalContext portalContext) {
- this.portalContext = (portalContext != null ? portalContext : new MockPortalContext());
- }
-
- /**
- * Return the PortalContext that this MockPortletResponse runs in,
- * defining the supported PortletModes and WindowStates.
- */
- public PortalContext getPortalContext() {
- return this.portalContext;
- }
-
-
- //---------------------------------------------------------------------
- // PortletResponse methods
- //---------------------------------------------------------------------
-
- @Override
- public void addProperty(String key, String value) {
- Assert.notNull(key, "Property key must not be null");
- String[] oldArr = this.properties.get(key);
- if (oldArr != null) {
- String[] newArr = new String[oldArr.length + 1];
- System.arraycopy(oldArr, 0, newArr, 0, oldArr.length);
- newArr[oldArr.length] = value;
- this.properties.put(key, newArr);
- }
- else {
- this.properties.put(key, new String[] {value});
- }
- }
-
- @Override
- public void setProperty(String key, String value) {
- Assert.notNull(key, "Property key must not be null");
- this.properties.put(key, new String[] {value});
- }
-
- public Set getPropertyNames() {
- return Collections.unmodifiableSet(this.properties.keySet());
- }
-
- public String getProperty(String key) {
- Assert.notNull(key, "Property key must not be null");
- String[] arr = this.properties.get(key);
- return (arr != null && arr.length > 0 ? arr[0] : null);
- }
-
- public String[] getProperties(String key) {
- Assert.notNull(key, "Property key must not be null");
- return this.properties.get(key);
- }
-
- @Override
- public String encodeURL(String path) {
- return path;
- }
-
- public void setNamespace(String namespace) {
- this.namespace = namespace;
- }
-
- @Override
- public String getNamespace() {
- return this.namespace;
- }
-
- @Override
- public void addProperty(Cookie cookie) {
- Assert.notNull(cookie, "Cookie must not be null");
- this.cookies.add(cookie);
- }
-
- public Cookie[] getCookies() {
- return this.cookies.toArray(new Cookie[this.cookies.size()]);
- }
-
- public Cookie getCookie(String name) {
- Assert.notNull(name, "Cookie name must not be null");
- for (Cookie cookie : this.cookies) {
- if (name.equals(cookie.getName())) {
- return cookie;
- }
- }
- return null;
- }
-
- @Override
- public void addProperty(String key, Element value) {
- Assert.notNull(key, "Property key must not be null");
- Element[] oldArr = this.xmlProperties.get(key);
- if (oldArr != null) {
- Element[] newArr = new Element[oldArr.length + 1];
- System.arraycopy(oldArr, 0, newArr, 0, oldArr.length);
- newArr[oldArr.length] = value;
- this.xmlProperties.put(key, newArr);
- }
- else {
- this.xmlProperties.put(key, new Element[] {value});
- }
- }
-
-
- public Set getXmlPropertyNames() {
- return Collections.unmodifiableSet(this.xmlProperties.keySet());
- }
-
- public Element getXmlProperty(String key) {
- Assert.notNull(key, "Property key must not be null");
- Element[] arr = this.xmlProperties.get(key);
- return (arr != null && arr.length > 0 ? arr[0] : null);
- }
-
- public Element[] getXmlProperties(String key) {
- Assert.notNull(key, "Property key must not be null");
- return this.xmlProperties.get(key);
- }
-
- @Override
- public Element createElement(String tagName) throws DOMException {
- if (this.xmlDocument == null) {
- try {
- this.xmlDocument = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
- }
- catch (ParserConfigurationException ex) {
- throw new DOMException(DOMException.INVALID_STATE_ERR, ex.toString());
- }
- }
- return this.xmlDocument.createElement(tagName);
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletSession.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletSession.java
deleted file mode 100644
index f1523bf95..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletSession.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- * Copyright 2002-2013 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import javax.portlet.PortletContext;
-import javax.portlet.PortletSession;
-import jakarta.servlet.http.HttpSessionBindingEvent;
-import jakarta.servlet.http.HttpSessionBindingListener;
-
-import org.springframework.mock.web.MockHttpSession;
-
-/**
- * Mock implementation of the {@link javax.portlet.PortletSession} interface.
- *
- * @author John A. Lewis
- * @author Juergen Hoeller
- * @since 2.0
- */
-public class MockPortletSession implements PortletSession {
-
- private static int nextId = 1;
-
-
- private final String id = Integer.toString(nextId++);
-
- private final long creationTime = System.currentTimeMillis();
-
- private int maxInactiveInterval;
-
- private long lastAccessedTime = System.currentTimeMillis();
-
- private final PortletContext portletContext;
-
- private final Map portletAttributes = new HashMap();
-
- private final Map applicationAttributes = new HashMap();
-
- private boolean invalid = false;
-
- private boolean isNew = true;
-
-
- /**
- * Create a new MockPortletSession with a default {@link MockPortletContext}.
- * @see MockPortletContext
- */
- public MockPortletSession() {
- this(null);
- }
-
- /**
- * Create a new MockPortletSession.
- * @param portletContext the PortletContext that the session runs in
- */
- public MockPortletSession(PortletContext portletContext) {
- this.portletContext = (portletContext != null ? portletContext : new MockPortletContext());
- }
-
-
- @Override
- public Object getAttribute(String name) {
- return this.portletAttributes.get(name);
- }
-
- @Override
- public Object getAttribute(String name, int scope) {
- if (scope == PortletSession.PORTLET_SCOPE) {
- return this.portletAttributes.get(name);
- }
- else if (scope == PortletSession.APPLICATION_SCOPE) {
- return this.applicationAttributes.get(name);
- }
- return null;
- }
-
- @Override
- public Enumeration getAttributeNames() {
- return Collections.enumeration(this.portletAttributes.keySet());
- }
-
- @Override
- public Enumeration getAttributeNames(int scope) {
- if (scope == PortletSession.PORTLET_SCOPE) {
- return Collections.enumeration(this.portletAttributes.keySet());
- }
- else if (scope == PortletSession.APPLICATION_SCOPE) {
- return Collections.enumeration(this.applicationAttributes.keySet());
- }
- return null;
- }
-
- @Override
- public long getCreationTime() {
- return this.creationTime;
- }
-
- @Override
- public String getId() {
- return this.id;
- }
-
- public void access() {
- this.lastAccessedTime = System.currentTimeMillis();
- setNew(false);
- }
-
- @Override
- public long getLastAccessedTime() {
- return this.lastAccessedTime;
- }
-
- @Override
- public int getMaxInactiveInterval() {
- return this.maxInactiveInterval;
- }
-
- /**
- * Clear all of this session's attributes.
- */
- public void clearAttributes() {
- doClearAttributes(this.portletAttributes);
- doClearAttributes(this.applicationAttributes);
- }
-
- protected void doClearAttributes(Map attributes) {
- for (Iterator> it = attributes.entrySet().iterator(); it.hasNext();) {
- Map.Entry entry = it.next();
- String name = entry.getKey();
- Object value = entry.getValue();
- it.remove();
- if (value instanceof HttpSessionBindingListener) {
- ((HttpSessionBindingListener) value).valueUnbound(
- new HttpSessionBindingEvent(new MockHttpSession(), name, value));
- }
- }
- }
-
- @Override
- public void invalidate() {
- this.lastAccessedTime = System.currentTimeMillis();
- this.invalid = true;
- clearAttributes();
- }
-
- public boolean isInvalid() {
- return this.invalid;
- }
-
- public void setNew(boolean value) {
- this.isNew = value;
- }
-
- @Override
- public boolean isNew() {
- return this.isNew;
- }
-
- @Override
- public void removeAttribute(String name) {
- this.portletAttributes.remove(name);
- }
-
- @Override
- public void removeAttribute(String name, int scope) {
- if (scope == PortletSession.PORTLET_SCOPE) {
- this.portletAttributes.remove(name);
- }
- else if (scope == PortletSession.APPLICATION_SCOPE) {
- this.applicationAttributes.remove(name);
- }
- }
-
- @Override
- public void setAttribute(String name, Object value) {
- if (value != null) {
- this.portletAttributes.put(name, value);
- }
- else {
- this.portletAttributes.remove(name);
- }
- }
-
- @Override
- public void setAttribute(String name, Object value, int scope) {
- if (scope == PortletSession.PORTLET_SCOPE) {
- if (value != null) {
- this.portletAttributes.put(name, value);
- }
- else {
- this.portletAttributes.remove(name);
- }
- }
- else if (scope == PortletSession.APPLICATION_SCOPE) {
- if (value != null) {
- this.applicationAttributes.put(name, value);
- }
- else {
- this.applicationAttributes.remove(name);
- }
- }
- }
-
- @Override
- public void setMaxInactiveInterval(int interval) {
- this.maxInactiveInterval = interval;
- }
-
- @Override
- public PortletContext getPortletContext() {
- return this.portletContext;
- }
-
- @Override
- public Map getAttributeMap() {
- return Collections.unmodifiableMap(this.portletAttributes);
- }
-
- @Override
- public Map getAttributeMap(int scope) {
- if (scope == PortletSession.PORTLET_SCOPE) {
- return Collections.unmodifiableMap(this.portletAttributes);
- }
- else if (scope == PortletSession.APPLICATION_SCOPE) {
- return Collections.unmodifiableMap(this.applicationAttributes);
- }
- else {
- return Collections.emptyMap();
- }
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletURL.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletURL.java
deleted file mode 100644
index 503807e7c..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockPortletURL.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.util.Map;
-import javax.portlet.PortalContext;
-import javax.portlet.PortletMode;
-import javax.portlet.PortletModeException;
-import javax.portlet.PortletURL;
-import javax.portlet.WindowState;
-import javax.portlet.WindowStateException;
-
-import org.springframework.util.Assert;
-import org.springframework.util.CollectionUtils;
-
-/**
- * Mock implementation of the {@link javax.portlet.PortletURL} interface.
- *
- * @author John A. Lewis
- * @author Juergen Hoeller
- * @since 2.0
- */
-public class MockPortletURL extends MockBaseURL implements PortletURL {
-
- public static final String URL_TYPE_RENDER = "render";
-
- public static final String URL_TYPE_ACTION = "action";
-
-
- private final PortalContext portalContext;
-
- private final String urlType;
-
- private WindowState windowState;
-
- private PortletMode portletMode;
-
-
- /**
- * Create a new MockPortletURL for the given URL type.
- * @param portalContext the PortalContext defining the supported
- * PortletModes and WindowStates
- * @param urlType the URL type, for example "render" or "action"
- * @see #URL_TYPE_RENDER
- * @see #URL_TYPE_ACTION
- */
- public MockPortletURL(PortalContext portalContext, String urlType) {
- Assert.notNull(portalContext, "PortalContext is required");
- this.portalContext = portalContext;
- this.urlType = urlType;
- }
-
-
- //---------------------------------------------------------------------
- // PortletURL methods
- //---------------------------------------------------------------------
-
- @Override
- public void setWindowState(WindowState windowState) throws WindowStateException {
- if (!CollectionUtils.contains(this.portalContext.getSupportedWindowStates(), windowState)) {
- throw new WindowStateException("WindowState not supported", windowState);
- }
- this.windowState = windowState;
- }
-
- @Override
- public WindowState getWindowState() {
- return this.windowState;
- }
-
- @Override
- public void setPortletMode(PortletMode portletMode) throws PortletModeException {
- if (!CollectionUtils.contains(this.portalContext.getSupportedPortletModes(), portletMode)) {
- throw new PortletModeException("PortletMode not supported", portletMode);
- }
- this.portletMode = portletMode;
- }
-
- @Override
- public PortletMode getPortletMode() {
- return this.portletMode;
- }
-
- @Override
- public void removePublicRenderParameter(String name) {
- this.parameters.remove(name);
- }
-
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append(encodeParameter("urlType", this.urlType));
- if (this.windowState != null) {
- sb.append(";").append(encodeParameter("windowState", this.windowState.toString()));
- }
- if (this.portletMode != null) {
- sb.append(";").append(encodeParameter("portletMode", this.portletMode.toString()));
- }
- for (Map.Entry entry : this.parameters.entrySet()) {
- sb.append(";").append(encodeParameter("param_" + entry.getKey(), entry.getValue()));
- }
- return (isSecure() ? "https:" : "http:") +
- "//localhost/mockportlet?" + sb.toString();
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockRenderRequest.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockRenderRequest.java
deleted file mode 100644
index fe5c11a6c..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockRenderRequest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import javax.portlet.PortalContext;
-import javax.portlet.PortletContext;
-import javax.portlet.PortletMode;
-import javax.portlet.RenderRequest;
-import javax.portlet.WindowState;
-
-/**
- * Mock implementation of the {@link javax.portlet.RenderRequest} interface.
- *
- * @author John A. Lewis
- * @author Juergen Hoeller
- * @since 2.0
- */
-public class MockRenderRequest extends MockPortletRequest implements RenderRequest {
-
- /**
- * Create a new MockRenderRequest with a default {@link MockPortalContext}
- * and a default {@link MockPortletContext}.
- * @see MockPortalContext
- * @see MockPortletContext
- */
- public MockRenderRequest() {
- super();
- }
-
- /**
- * Create a new MockRenderRequest with a default {@link MockPortalContext}
- * and a default {@link MockPortletContext}.
- * @param portletMode the mode that the portlet runs in
- */
- public MockRenderRequest(PortletMode portletMode) {
- super();
- setPortletMode(portletMode);
- }
-
- /**
- * Create a new MockRenderRequest with a default {@link MockPortalContext}
- * and a default {@link MockPortletContext}.
- * @param portletMode the mode that the portlet runs in
- * @param windowState the window state to run the portlet in
- */
- public MockRenderRequest(PortletMode portletMode, WindowState windowState) {
- super();
- setPortletMode(portletMode);
- setWindowState(windowState);
- }
-
- /**
- * Create a new MockRenderRequest with a default {@link MockPortalContext}.
- * @param portletContext the PortletContext that the request runs in
- */
- public MockRenderRequest(PortletContext portletContext) {
- super(portletContext);
- }
-
- /**
- * Create a new MockRenderRequest.
- * @param portalContext the PortletContext that the request runs in
- * @param portletContext the PortletContext that the request runs in
- */
- public MockRenderRequest(PortalContext portalContext, PortletContext portletContext) {
- super(portalContext, portletContext);
- }
-
-
- @Override
- protected String getLifecyclePhase() {
- return RENDER_PHASE;
- }
-
- @Override
- public String getETag() {
- return getProperty(RenderRequest.ETAG);
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockRenderResponse.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockRenderResponse.java
deleted file mode 100644
index defa5e9f7..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockRenderResponse.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.util.Collection;
-import javax.portlet.PortalContext;
-import javax.portlet.PortletMode;
-import javax.portlet.RenderRequest;
-import javax.portlet.RenderResponse;
-
-/**
- * Mock implementation of the {@link javax.portlet.RenderResponse} interface.
- *
- * @author John A. Lewis
- * @author Juergen Hoeller
- * @since 2.0
- */
-public class MockRenderResponse extends MockMimeResponse implements RenderResponse {
-
- private String title;
-
- private Collection nextPossiblePortletModes;
-
-
- /**
- * Create a new MockRenderResponse with a default {@link MockPortalContext}.
- * @see MockPortalContext
- */
- public MockRenderResponse() {
- super();
- }
-
- /**
- * Create a new MockRenderResponse.
- * @param portalContext the PortalContext defining the supported
- * PortletModes and WindowStates
- */
- public MockRenderResponse(PortalContext portalContext) {
- super(portalContext);
- }
-
- /**
- * Create a new MockRenderResponse.
- * @param portalContext the PortalContext defining the supported
- * PortletModes and WindowStates
- * @param request the corresponding render request that this response
- * is generated for
- */
- public MockRenderResponse(PortalContext portalContext, RenderRequest request) {
- super(portalContext, request);
- }
-
-
- //---------------------------------------------------------------------
- // RenderResponse methods
- //---------------------------------------------------------------------
-
- @Override
- public void setTitle(String title) {
- this.title = title;
- }
-
- public String getTitle() {
- return this.title;
- }
-
- @Override
- public void setNextPossiblePortletModes(Collection portletModes) {
- this.nextPossiblePortletModes = portletModes;
- }
-
- public Collection getNextPossiblePortletModes() {
- return this.nextPossiblePortletModes;
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockResourceRequest.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockResourceRequest.java
deleted file mode 100644
index 421217069..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockResourceRequest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import javax.portlet.PortalContext;
-import javax.portlet.PortletContext;
-import javax.portlet.RenderRequest;
-import javax.portlet.ResourceRequest;
-
-/**
- * Mock implementation of the {@link javax.portlet.ResourceRequest} interface.
- *
- * @author Juergen Hoeller
- * @since 3.0
- */
-public class MockResourceRequest extends MockClientDataRequest implements ResourceRequest {
-
- private String resourceID;
-
- private String cacheability;
-
- private final Map privateRenderParameterMap = new LinkedHashMap();
-
-
- /**
- * Create a new MockResourceRequest with a default {@link MockPortalContext}
- * and a default {@link MockPortletContext}.
- * @see org.springframework.mock.web.portlet.MockPortalContext
- * @see org.springframework.mock.web.portlet.MockPortletContext
- */
- public MockResourceRequest() {
- super();
- }
-
- /**
- * Create a new MockResourceRequest with a default {@link MockPortalContext}
- * and a default {@link MockPortletContext}.
- * @param resourceID the resource id for this request
- */
- public MockResourceRequest(String resourceID) {
- super();
- this.resourceID = resourceID;
- }
-
- /**
- * Create a new MockResourceRequest with a default {@link MockPortalContext}
- * and a default {@link MockPortletContext}.
- * @param url the resource URL for this request
- */
- public MockResourceRequest(MockResourceURL url) {
- super();
- this.resourceID = url.getResourceID();
- this.cacheability = url.getCacheability();
- }
-
- /**
- * Create a new MockResourceRequest with a default {@link MockPortalContext}.
- * @param portletContext the PortletContext that the request runs in
- */
- public MockResourceRequest(PortletContext portletContext) {
- super(portletContext);
- }
-
- /**
- * Create a new MockResourceRequest.
- * @param portalContext the PortalContext that the request runs in
- * @param portletContext the PortletContext that the request runs in
- */
- public MockResourceRequest(PortalContext portalContext, PortletContext portletContext) {
- super(portalContext, portletContext);
- }
-
-
- @Override
- protected String getLifecyclePhase() {
- return RESOURCE_PHASE;
- }
-
- public void setResourceID(String resourceID) {
- this.resourceID = resourceID;
- }
-
- @Override
- public String getResourceID() {
- return this.resourceID;
- }
-
- public void setCacheability(String cacheLevel) {
- this.cacheability = cacheLevel;
- }
-
- @Override
- public String getCacheability() {
- return this.cacheability;
- }
-
- @Override
- public String getETag() {
- return getProperty(RenderRequest.ETAG);
- }
-
- public void addPrivateRenderParameter(String key, String value) {
- this.privateRenderParameterMap.put(key, new String[] {value});
- }
-
- public void addPrivateRenderParameter(String key, String[] values) {
- this.privateRenderParameterMap.put(key, values);
- }
-
- @Override
- public Map getPrivateRenderParameterMap() {
- return Collections.unmodifiableMap(this.privateRenderParameterMap);
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockResourceResponse.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockResourceResponse.java
deleted file mode 100644
index 06bba7a00..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockResourceResponse.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import javax.portlet.ResourceResponse;
-
-/**
- * Mock implementation of the {@link javax.portlet.ResourceResponse} interface.
- *
- * @author Juergen Hoeller
- * @since 3.0
- */
-public class MockResourceResponse extends MockMimeResponse implements ResourceResponse {
-
- private int contentLength = 0;
-
-
- @Override
- public void setContentLength(int len) {
- this.contentLength = len;
- }
-
- public int getContentLength() {
- return this.contentLength;
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockResourceURL.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockResourceURL.java
deleted file mode 100644
index e38e08986..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockResourceURL.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.util.Map;
-import javax.portlet.ResourceURL;
-
-/**
- * Mock implementation of the {@link javax.portlet.ResourceURL} interface.
- *
- * @author Juergen Hoeller
- * @since 3.0
- */
-public class MockResourceURL extends MockBaseURL implements ResourceURL {
-
- private String resourceID;
-
- private String cacheability;
-
-
- //---------------------------------------------------------------------
- // ResourceURL methods
- //---------------------------------------------------------------------
-
- @Override
- public void setResourceID(String resourceID) {
- this.resourceID = resourceID;
- }
-
- public String getResourceID() {
- return this.resourceID;
- }
-
- @Override
- public void setCacheability(String cacheLevel) {
- this.cacheability = cacheLevel;
- }
-
- @Override
- public String getCacheability() {
- return this.cacheability;
- }
-
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append(encodeParameter("resourceID", this.resourceID));
- if (this.cacheability != null) {
- sb.append(";").append(encodeParameter("cacheability", this.cacheability));
- }
- for (Map.Entry entry : this.parameters.entrySet()) {
- sb.append(";").append(encodeParameter("param_" + entry.getKey(), entry.getValue()));
- }
- return (isSecure() ? "https:" : "http:") +
- "//localhost/mockportlet?" + sb.toString();
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockStateAwareResponse.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockStateAwareResponse.java
deleted file mode 100644
index bb085ba21..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/MockStateAwareResponse.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Copyright 2002-2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.io.Serializable;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import javax.portlet.PortalContext;
-import javax.portlet.PortletMode;
-import javax.portlet.PortletModeException;
-import javax.portlet.StateAwareResponse;
-import javax.portlet.WindowState;
-import javax.portlet.WindowStateException;
-import javax.xml.namespace.QName;
-
-import org.springframework.util.Assert;
-import org.springframework.util.CollectionUtils;
-
-/**
- * Mock implementation of the {@link javax.portlet.StateAwareResponse} interface.
- *
- * @author Juergen Hoeller
- * @since 3.0
- */
-public class MockStateAwareResponse extends MockPortletResponse implements StateAwareResponse {
-
- private WindowState windowState;
-
- private PortletMode portletMode;
-
- private final Map renderParameters = new LinkedHashMap();
-
- private final Map events = new HashMap();
-
-
- /**
- * Create a new MockActionResponse with a default {@link MockPortalContext}.
- * @see org.springframework.mock.web.portlet.MockPortalContext
- */
- public MockStateAwareResponse() {
- super();
- }
-
- /**
- * Create a new MockActionResponse.
- * @param portalContext the PortalContext defining the supported
- * PortletModes and WindowStates
- */
- public MockStateAwareResponse(PortalContext portalContext) {
- super(portalContext);
- }
-
-
- @Override
- public void setWindowState(WindowState windowState) throws WindowStateException {
- if (!CollectionUtils.contains(getPortalContext().getSupportedWindowStates(), windowState)) {
- throw new WindowStateException("WindowState not supported", windowState);
- }
- this.windowState = windowState;
- }
-
- @Override
- public WindowState getWindowState() {
- return this.windowState;
- }
-
- @Override
- public void setPortletMode(PortletMode portletMode) throws PortletModeException {
- if (!CollectionUtils.contains(getPortalContext().getSupportedPortletModes(), portletMode)) {
- throw new PortletModeException("PortletMode not supported", portletMode);
- }
- this.portletMode = portletMode;
- }
-
- @Override
- public PortletMode getPortletMode() {
- return this.portletMode;
- }
-
- @Override
- public void setRenderParameters(Map parameters) {
- Assert.notNull(parameters, "Parameters Map must not be null");
- this.renderParameters.clear();
- this.renderParameters.putAll(parameters);
- }
-
- @Override
- public void setRenderParameter(String key, String value) {
- Assert.notNull(key, "Parameter key must not be null");
- Assert.notNull(value, "Parameter value must not be null");
- this.renderParameters.put(key, new String[] {value});
- }
-
- @Override
- public void setRenderParameter(String key, String[] values) {
- Assert.notNull(key, "Parameter key must not be null");
- Assert.notNull(values, "Parameter values must not be null");
- this.renderParameters.put(key, values);
- }
-
- public String getRenderParameter(String key) {
- Assert.notNull(key, "Parameter key must not be null");
- String[] arr = this.renderParameters.get(key);
- return (arr != null && arr.length > 0 ? arr[0] : null);
- }
-
- public String[] getRenderParameterValues(String key) {
- Assert.notNull(key, "Parameter key must not be null");
- return this.renderParameters.get(key);
- }
-
- public Iterator getRenderParameterNames() {
- return this.renderParameters.keySet().iterator();
- }
-
- @Override
- public Map getRenderParameterMap() {
- return Collections.unmodifiableMap(this.renderParameters);
- }
-
- @Override
- public void removePublicRenderParameter(String name) {
- this.renderParameters.remove(name);
- }
-
- @Override
- public void setEvent(QName name, Serializable value) {
- this.events.put(name, value);
- }
-
- @Override
- public void setEvent(String name, Serializable value) {
- this.events.put(new QName(name), value);
- }
-
- public Iterator getEventNames() {
- return this.events.keySet().iterator();
- }
-
- public Serializable getEvent(QName name) {
- return this.events.get(name);
- }
-
- public Serializable getEvent(String name) {
- return this.events.get(new QName(name));
- }
-
-}
\ No newline at end of file
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/ServletWrappingPortletContext.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/ServletWrappingPortletContext.java
deleted file mode 100644
index da179845e..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/ServletWrappingPortletContext.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright 2002-2016 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet;
-
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.Set;
-import javax.portlet.PortletContext;
-import javax.portlet.PortletRequestDispatcher;
-import jakarta.servlet.ServletContext;
-
-import org.springframework.util.Assert;
-
-/**
- * Mock implementation of the {@link javax.portlet.PortletContext} interface,
- * wrapping an underlying {@link javax.servlet.ServletContext}.
- *
- * @author Juergen Hoeller
- * @since 3.0
- * @see MockPortletContext
- */
-public class ServletWrappingPortletContext implements PortletContext {
-
- private final ServletContext servletContext;
-
-
- /**
- * Create a new PortletContext wrapping the given ServletContext.
- * @param servletContext the ServletContext to wrap
- */
- public ServletWrappingPortletContext(ServletContext servletContext) {
- Assert.notNull(servletContext, "ServletContext must not be null");
- this.servletContext = servletContext;
- }
-
- /**
- * Return the underlying ServletContext that this PortletContext wraps.
- */
- public final ServletContext getServletContext() {
- return this.servletContext;
- }
-
-
- @Override
- public String getServerInfo() {
- return this.servletContext.getServerInfo();
- }
-
- @Override
- public PortletRequestDispatcher getRequestDispatcher(String path) {
- return null;
- }
-
- @Override
- public PortletRequestDispatcher getNamedDispatcher(String name) {
- return null;
- }
-
- @Override
- public InputStream getResourceAsStream(String path) {
- return this.servletContext.getResourceAsStream(path);
- }
-
- @Override
- public int getMajorVersion() {
- return 2;
- }
-
- @Override
- public int getMinorVersion() {
- return 0;
- }
-
- @Override
- public String getMimeType(String file) {
- return this.servletContext.getMimeType(file);
- }
-
- @Override
- public String getRealPath(String path) {
- return this.servletContext.getRealPath(path);
- }
-
- @Override
- public Set getResourcePaths(String path) {
- return this.servletContext.getResourcePaths(path);
- }
-
- @Override
- public URL getResource(String path) throws MalformedURLException {
- return this.servletContext.getResource(path);
- }
-
- @Override
- public Object getAttribute(String name) {
- return this.servletContext.getAttribute(name);
- }
-
- @Override
- public Enumeration getAttributeNames() {
- return this.servletContext.getAttributeNames();
- }
-
- @Override
- public String getInitParameter(String name) {
- return this.servletContext.getInitParameter(name);
- }
-
- @Override
- public Enumeration getInitParameterNames() {
- return this.servletContext.getInitParameterNames();
- }
-
- @Override
- public void log(String msg) {
- this.servletContext.log(msg);
- }
-
- @Override
- public void log(String message, Throwable throwable) {
- this.servletContext.log(message, throwable);
- }
-
- @Override
- public void removeAttribute(String name) {
- this.servletContext.removeAttribute(name);
- }
-
- @Override
- public void setAttribute(String name, Object object) {
- this.servletContext.setAttribute(name, object);
- }
-
- @Override
- public String getPortletContextName() {
- return this.servletContext.getServletContextName();
- }
-
- @Override
- public Enumeration getContainerRuntimeOptions() {
- return Collections.enumeration(Collections.emptySet());
- }
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/multipart/MultipartActionRequest.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/multipart/MultipartActionRequest.java
deleted file mode 100644
index 6df611fe2..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/multipart/MultipartActionRequest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2002-2008 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.struts2.mock.web.portlet.multipart;
-
-import javax.portlet.ActionRequest;
-
-import org.springframework.web.multipart.MultipartRequest;
-
-/**
- * Interface which provides additional methods for dealing with multipart
- * content within a portlet request, allowing to access uploaded files.
- * Implementations also need to override the standard ActionRequest
- * methods for parameter access, making multipart parameters available.
- *
- *
A concrete implementation is {@link DefaultMultipartActionRequest}.
- *
- * @author Juergen Hoeller
- * @since 2.0
- * @see PortletMultipartResolver
- * @see org.springframework.web.multipart.MultipartFile
- * @see javax.portlet.ActionRequest#getParameter
- * @see javax.portlet.ActionRequest#getParameterNames
- * @see javax.portlet.ActionRequest#getParameterMap
- */
-public interface MultipartActionRequest extends ActionRequest, MultipartRequest {
-
-}
diff --git a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/multipart/package-info.java b/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/multipart/package-info.java
deleted file mode 100644
index 0ed9b6066..000000000
--- a/plugins/portlet-mocks/src/main/java/org/apache/struts2/mock/web/portlet/multipart/package-info.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2002-2016 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*
- * This package is a copy of the org.springframework.web.portlet.multipart package from Spring 4.3.x
- * (org.springframework, spring-webmvc-portlet, EasyMock) or
- * existing Portlet API mock objects.
- */
-package org.apache.struts2.mock.web.portlet;
\ No newline at end of file
diff --git a/plugins/portlet-mocks/src/site/site.xml b/plugins/portlet-mocks/src/site/site.xml
deleted file mode 100644
index 54fdcf4f4..000000000
--- a/plugins/portlet-mocks/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
- org.apache.maven.skins
- maven-fluido-skin
- ${fluido-skin.version}
-
-
- Apache Software Foundation
- http://www.apache.org/images/asf-logo.gif
- http://www.apache.org/
-
-
- Apache Struts
- http://struts.apache.org/img/struts-logo.svg
- http://struts.apache.org/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/plugins/portlet-mocks/src/test/java/org/apache/struts2/StrutsSpringPortletMockObjectsTest.java b/plugins/portlet-mocks/src/test/java/org/apache/struts2/StrutsSpringPortletMockObjectsTest.java
deleted file mode 100644
index 019994d54..000000000
--- a/plugins/portlet-mocks/src/test/java/org/apache/struts2/StrutsSpringPortletMockObjectsTest.java
+++ /dev/null
@@ -1,1604 +0,0 @@
-/*
- * Copyright 2020 Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.struts2;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.net.MalformedURLException;
-import java.nio.charset.StandardCharsets;
-import java.security.Principal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.Locale;
-import java.util.Map;
-import java.util.ResourceBundle;
-import java.util.Set;
-import javax.portlet.ActionRequest;
-import javax.portlet.PortletMode;
-import javax.portlet.PortletPreferences;
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletSession;
-import javax.portlet.PortletURL;
-import javax.portlet.PreferencesValidator;
-import javax.portlet.ReadOnlyException;
-import javax.portlet.ResourceURL;
-import javax.portlet.WindowState;
-import jakarta.security.auth.Subject;
-import jakarta.servlet.http.Cookie;
-import javax.xml.namespace.QName;
-import junit.framework.TestCase;
-import org.apache.struts2.mock.web.portlet.MockActionRequest;
-import org.apache.struts2.mock.web.portlet.MockActionResponse;
-import org.apache.struts2.mock.web.portlet.MockCacheControl;
-import org.apache.struts2.mock.web.portlet.MockClientDataRequest;
-import org.apache.struts2.mock.web.portlet.MockEvent;
-import org.apache.struts2.mock.web.portlet.MockEventRequest;
-import org.apache.struts2.mock.web.portlet.MockEventResponse;
-import org.apache.struts2.mock.web.portlet.MockMimeResponse;
-import org.apache.struts2.mock.web.portlet.MockMultipartActionRequest;
-import org.apache.struts2.mock.web.portlet.MockPortalContext;
-import org.apache.struts2.mock.web.portlet.MockPortletConfig;
-import org.apache.struts2.mock.web.portlet.MockPortletContext;
-import org.apache.struts2.mock.web.portlet.MockPortletPreferences;
-import org.apache.struts2.mock.web.portlet.MockPortletRequest;
-import org.apache.struts2.mock.web.portlet.MockPortletRequestDispatcher;
-import org.apache.struts2.mock.web.portlet.MockPortletResponse;
-import org.apache.struts2.mock.web.portlet.MockPortletSession;
-import org.apache.struts2.mock.web.portlet.MockPortletURL;
-import org.apache.struts2.mock.web.portlet.MockRenderRequest;
-import org.apache.struts2.mock.web.portlet.MockRenderResponse;
-import org.apache.struts2.mock.web.portlet.MockResourceRequest;
-import org.apache.struts2.mock.web.portlet.MockResourceResponse;
-import org.apache.struts2.mock.web.portlet.MockResourceURL;
-import org.apache.struts2.mock.web.portlet.MockStateAwareResponse;
-import org.apache.struts2.mock.web.portlet.ServletWrappingPortletContext;
-import org.springframework.mock.web.MockServletContext;
-import org.springframework.util.MultiValueMap;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.util.WebUtils;
-import org.w3c.dom.Element;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertNotEquals;
-
-/**
- * Basic test class for Portlet Mock Object testing
- *
- */
-public class StrutsSpringPortletMockObjectsTest extends TestCase {
-
- /**
- * An empty preferences validator for code coverage only
- */
- private static class BasicPreferencesValidator implements PreferencesValidator {
-
- @Override
- public void validate(PortletPreferences preferences) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- }
-
- public void testMockActionRequest() {
- final String TEST_ACTIONNAME = "TEST_ACTIONNAME";
-
- // Call each constructor in sequence, do some basic checks
- new MockActionRequest(); // Only test is to confirm constructor completes without exception
- MockActionRequest mockActionRequest;
- mockActionRequest = new MockActionRequest(TEST_ACTIONNAME);
- assertEquals("Action name (ActionRequest.ACTION_NAME) " + TEST_ACTIONNAME + " not set ?", TEST_ACTIONNAME, mockActionRequest.getParameter(ActionRequest.ACTION_NAME));
- mockActionRequest = new MockActionRequest(PortletMode.VIEW);
- assertEquals("PortletMode.VIEW not set ?", PortletMode.VIEW, mockActionRequest.getPortletMode());
-
- final MockPortletContext mockPortletContext = new MockPortletContext();
- final MockPortalContext mockPortalContext = new MockPortalContext();
- new MockActionRequest(mockPortletContext); // Only test is to confirm constructor completes without exception
- mockActionRequest = new MockActionRequest(mockPortalContext, mockPortletContext);
- assertEquals("Portal context does not match constructor-set value ?", mockPortalContext, mockActionRequest.getPortalContext());
- }
-
- public void testMockActionResponse() {
- final String TEST_PARAM = "TEST_PARAM";
- final String TEST_PARAM2 = "TEST_PARAM2";
- final String TEST_PARAM3 = "TEST_PARAM3";
- final String TEST_PARAM_VALUE = "NORMALVALUE";
- final String[] TEST_PARAM_ARRAYVALUE = { "ARRAYVALUE1", "ARRAYVALUE2" };
- final String[] TEST_PARAM_ARRAYVALUE2 = { "ARRAYVALUE3", "ARRAYVALUE4" };
- final String TEST_REDIRECT_URL = "localhost:8080/fakeurl";
- final String TEST_RENDER_URLPARAM_NAME = "fake_render_url_param_name";
-
- // Call each constructor in sequence, do some basic checks
- MockActionResponse mockActionResponse = new MockActionResponse();
- try {
- mockActionResponse.setPortletMode(PortletMode.VIEW);
- } catch (Exception ex) {
- fail("MockActionResponse portlet mode set failed. Exception: " + ex);
- }
- assertEquals("PortletMode.VIEW not set ?", PortletMode.VIEW, mockActionResponse.getPortletMode());
-
- final MockPortalContext mockPortalContext = new MockPortalContext();
- mockActionResponse = new MockActionResponse(mockPortalContext); // Only test is to confirm constructor completes without exception
- assertEquals("Portal context does not match constructor-set value ?", mockPortalContext, mockActionResponse.getPortalContext());
- mockActionResponse.setRenderParameter(TEST_PARAM, TEST_PARAM_VALUE);
- mockActionResponse.setRenderParameter(TEST_PARAM2, TEST_PARAM_ARRAYVALUE);
- assertEquals("Portal test render parameter value not as expected ?", TEST_PARAM_VALUE, mockActionResponse.getRenderParameter(TEST_PARAM));
- assertEquals("Portal test render parameter value not as expected ?", TEST_PARAM_ARRAYVALUE[0], mockActionResponse.getRenderParameter(TEST_PARAM2));
- final Map renderParametersMap = new LinkedHashMap<>();
- renderParametersMap.put(TEST_PARAM3, TEST_PARAM_ARRAYVALUE2);
- mockActionResponse.setRenderParameters(renderParametersMap);
- assertNull("Portal test render parameter value not cleared as expected ?", mockActionResponse.getRenderParameter(TEST_PARAM));
- assertNull("Portal test render parameter value not cleared as expected ?", mockActionResponse.getRenderParameter(TEST_PARAM2));
- assertEquals("Portal test render parameter map value not as expected ?", renderParametersMap, mockActionResponse.getRenderParameterMap());
-
- try {
- mockActionResponse.sendRedirect(TEST_REDIRECT_URL);
- fail("Able to redirect after windowState/portletMode/renderParameters set ?");
- } catch (IllegalStateException ise) {
- // Expected failure
- } catch (Exception ex) {
- fail("MockActionResponse sendredirect failed. Exception: " + ex);
- }
- mockActionResponse = new MockActionResponse(); // Clean mock response
- try {
- mockActionResponse.sendRedirect(TEST_REDIRECT_URL);
- } catch (Exception ex) {
- fail("MockActionResponse sendredirect failed. Exception: " + ex);
- }
- assertEquals("Redirect url not as expected ?", TEST_REDIRECT_URL, mockActionResponse.getRedirectedUrl());
- mockActionResponse = new MockActionResponse(); // Clean mock response
- try {
- // Note: The original Spring 4.3.x mock implementation always threw an IllegalStateException when calling the method below.
- mockActionResponse.sendRedirect(TEST_REDIRECT_URL, TEST_RENDER_URLPARAM_NAME);
- } catch (Exception ex) {
- fail("MockActionResponse sendredirect failed. Exception: " + ex);
- }
- assertEquals("Redirect url not as expected ?", TEST_REDIRECT_URL, mockActionResponse.getRedirectedUrl());
- assertEquals("Redirect url render parameter not as expected ?", TEST_REDIRECT_URL, mockActionResponse.getRenderParameter(TEST_RENDER_URLPARAM_NAME));
- }
-
- public void testMockCacheControl() {
- final int TEST_EXPIRATION_TIME = 30;
- final String TEST_ETAG = "TEST_ETAG";
-
- // Call each constructor in sequence, do some basic checks
- MockCacheControl mockCacheControl = new MockCacheControl();
- assertEquals("Initial expiry not as expected ?", 0, mockCacheControl.getExpirationTime());
- assertFalse("Initial scope public ?", mockCacheControl.isPublicScope());
- assertFalse("Initial use cache true ?", mockCacheControl.useCachedContent());
- mockCacheControl.setExpirationTime(TEST_EXPIRATION_TIME);
- assertEquals("Initial expiry not as expected ?", TEST_EXPIRATION_TIME, mockCacheControl.getExpirationTime());
- mockCacheControl.setPublicScope(true);
- assertTrue("Updated scope not public ?", mockCacheControl.isPublicScope());
- mockCacheControl.setPublicScope(false);
- assertFalse("Updated scope still public ?", mockCacheControl.isPublicScope());
- mockCacheControl.setETag(TEST_ETAG);
- assertEquals("ETag not not as expected ?", TEST_ETAG, mockCacheControl.getETag());
- mockCacheControl.setUseCachedContent(true);
- assertTrue("Updated use cache not true ?", mockCacheControl.useCachedContent());
- mockCacheControl.setUseCachedContent(false);
- assertFalse("Updated use cache still true ?", mockCacheControl.useCachedContent());
- }
-
- public void testMockClientDataRequest() {
- final String TEST_FAKECONTENT = "Some fake content for the test.";
- final byte[] TEST_FAKECONTENT_ASBYTES = TEST_FAKECONTENT.getBytes(StandardCharsets.UTF_8);
- final String TEST_CONTENT_TYPE = "text/html";
- final String TEST_METHOD = "POST";
-
- // Call each constructor in sequence, do some basic checks
- new MockClientDataRequest(); // Only test is to confirm constructor completes without exception
- final MockPortletContext mockPortletContext = new MockPortletContext();
- final MockPortalContext mockPortalContext = new MockPortalContext();
- new MockClientDataRequest(mockPortletContext); // Only test is to confirm constructor completes without exception
- MockClientDataRequest mockClientDataRequest = new MockClientDataRequest(mockPortalContext, mockPortletContext);
- assertEquals("Portal context does not match constructor-set value ?", mockPortalContext, mockClientDataRequest.getPortalContext());
- mockClientDataRequest.setContent(TEST_FAKECONTENT_ASBYTES);
- assertEquals("Content length not as expected ?", TEST_FAKECONTENT_ASBYTES.length, mockClientDataRequest.getContentLength());
- mockClientDataRequest.setCharacterEncoding(StandardCharsets.UTF_8.name());
- assertEquals("Charset not as expected ?", StandardCharsets.UTF_8.name(), mockClientDataRequest.getCharacterEncoding());
- mockClientDataRequest.setContentType(TEST_CONTENT_TYPE);
- assertEquals("Content-type not as expected ?", TEST_CONTENT_TYPE, mockClientDataRequest.getContentType());
- mockClientDataRequest.setMethod(TEST_METHOD);
- assertEquals("Method not as expected ?", TEST_METHOD, mockClientDataRequest.getMethod());
- try ( InputStream inputStream = mockClientDataRequest.getPortletInputStream() ) {
- final byte[] readContent = new byte[mockClientDataRequest.getContentLength()];
- inputStream.read(readContent, 0, readContent.length);
- assertArrayEquals("Read byte array does not match original ?", TEST_FAKECONTENT_ASBYTES, readContent);
- } catch (Exception ex) {
- fail("MockClientDataRequest read inputstream failed. Exception: " + ex);
- }
- try ( BufferedReader bufferedReader = mockClientDataRequest.getReader() ) {
- final String theOnlyLine = bufferedReader.readLine();
- assertEquals("Read line does not match original ?", TEST_FAKECONTENT, theOnlyLine);
- } catch (Exception ex) {
- fail("MockClientDataRequest read inputstream failed. Exception: " + ex);
- }
- }
-
- public void testMockEvent() {
- final String TEST_EVENT = "TEST_EVENT";
- final String TEST_EVENT_VALUE = "TEST_EVENT_VALUE";
- final QName TEST_QNAME = new QName(TEST_EVENT);
-
- // Call each constructor in sequence, do some basic checks
- MockEvent mockClientDataRequest = new MockEvent(TEST_EVENT);
- assertNull("Initial value not null ?", mockClientDataRequest.getValue());
- assertEquals("Event name does not match ?", TEST_EVENT, mockClientDataRequest.getName());
- assertEquals("Event QName does not match ?", new QName(TEST_EVENT), mockClientDataRequest.getQName());
- mockClientDataRequest = new MockEvent(TEST_EVENT, TEST_EVENT_VALUE);
- assertEquals("Initial value not as expected ?", TEST_EVENT_VALUE, mockClientDataRequest.getValue());
- assertEquals("Event name does not match ?", TEST_EVENT, mockClientDataRequest.getName());
- assertEquals("Event QName does not match ?", new QName(TEST_EVENT), mockClientDataRequest.getQName());
- mockClientDataRequest = new MockEvent(TEST_QNAME);
- assertNull("Initial value not null ?", mockClientDataRequest.getValue());
- assertEquals("Event name does not match ?", TEST_EVENT, mockClientDataRequest.getName());
- assertEquals("Event QName does not match ?", TEST_QNAME, mockClientDataRequest.getQName());
- mockClientDataRequest = new MockEvent(TEST_QNAME, TEST_EVENT_VALUE);
- assertEquals("Initial value not as expected ?", TEST_EVENT_VALUE, mockClientDataRequest.getValue());
- assertEquals("Event name does not match ?", TEST_EVENT, mockClientDataRequest.getName());
- assertEquals("Event QName does not match ?", TEST_QNAME, mockClientDataRequest.getQName());
- }
-
- public void testMockEventRequest() {
- final MockEvent TEST_MOCKEVENT = new MockEvent("MockEventName", "MockEventValue");
- final String TEST_METHOD = "POST";
-
- // Call each constructor in sequence, do some basic checks
- MockEventRequest mockEventRequest = new MockEventRequest(TEST_MOCKEVENT);
- assertEquals("Event not the event set ?", TEST_MOCKEVENT, mockEventRequest.getEvent());
- mockEventRequest.setMethod(TEST_METHOD);
- assertEquals("Method not the method set ?", TEST_METHOD, mockEventRequest.getMethod());
- final MockPortletContext mockPortletContext = new MockPortletContext();
- final MockPortalContext mockPortalContext = new MockPortalContext();
- new MockEventRequest(TEST_MOCKEVENT, mockPortletContext); // Only test is to confirm constructor completes without exception
- mockEventRequest = new MockEventRequest(TEST_MOCKEVENT, mockPortalContext, mockPortletContext); // Only test is to confirm constructor completes without exception
- assertEquals("Portal context does not match constructor-set value ?", mockPortalContext, mockEventRequest.getPortalContext());
- }
-
- public void testMockEventResponse() {
- // Call each constructor in sequence, do some basic checks
- try {
- new MockEventResponse(); // Only test is to confirm constructor completes without exception
- assertTrue(true);
- } catch (Throwable t) {
- fail(t.getMessage());
- }
- }
-
- public void testMockMimeResponse() {
- final String TEST_CONTENT_TYPE = "text/html";
- final int TEST_BUFFERSIZE = 8192;
- final String TEST_INCLUDED_URL = "localhost:8080/fakeincludedurl";
- final String TEST_FORWARDED_URL = "localhost:8080/fakeforwardedurl";
- final String TEST_FAKECONTENT = "Some fake content for the test.";
- final byte[] TEST_FAKECONTENT_ASBYTES = TEST_FAKECONTENT.getBytes(StandardCharsets.UTF_8);
-
- // Call each constructor in sequence, do some basic checks
- MockMimeResponse mockMimeResponse = new MockMimeResponse();
- assertEquals("Default character encoding not as expected ?", WebUtils.DEFAULT_CHARACTER_ENCODING, mockMimeResponse.getCharacterEncoding());
- assertEquals("Default locale not as expected ?", Locale.getDefault(), mockMimeResponse.getLocale());
- assertTrue("Default buffersize not as expected ?", mockMimeResponse.getBufferSize() >= 4096);
- assertFalse("Mock response already committed ?", mockMimeResponse.isCommitted());
- final MockPortalContext mockPortalContext = new MockPortalContext();
- final MockPortletContext mockPortletContext = new MockPortletContext();
- final MockPortletRequest mockPortletRequest = new MockPortletRequest(mockPortalContext, mockPortletContext);
- mockMimeResponse = new MockMimeResponse(mockPortalContext);
- assertEquals("Portal context does not match constructor-set value ?", mockPortalContext, mockMimeResponse.getPortalContext());
- mockMimeResponse = new MockMimeResponse(mockPortalContext, mockPortletRequest);
- assertEquals("Portal context does not match constructor-set value ?", mockPortalContext, mockMimeResponse.getPortalContext());
- mockMimeResponse.setContentType(TEST_CONTENT_TYPE);
- assertEquals("Content-type not as expected ?", TEST_CONTENT_TYPE, mockMimeResponse.getContentType());
- mockMimeResponse.setCharacterEncoding(StandardCharsets.UTF_8.name());
- assertEquals("Charset not as expected ?", StandardCharsets.UTF_8.name(), mockMimeResponse.getCharacterEncoding());
- mockMimeResponse.setBufferSize(TEST_BUFFERSIZE);
- assertEquals("Buffersize not as expected ?", TEST_BUFFERSIZE, mockMimeResponse.getBufferSize());
- mockMimeResponse.setCommitted(true);
- assertTrue("Response not committed ?", mockMimeResponse.isCommitted());
- mockMimeResponse.setCommitted(false);
- assertFalse("Response still committed ?", mockMimeResponse.isCommitted());
- mockMimeResponse.setIncludedUrl(TEST_INCLUDED_URL);
- assertEquals("Included URL not as expected ?", TEST_INCLUDED_URL, mockMimeResponse.getIncludedUrl());
- mockMimeResponse.setForwardedUrl(TEST_FORWARDED_URL);
- assertEquals("Forwarded URL not as expected ?", TEST_FORWARDED_URL, mockMimeResponse.getForwardedUrl());
- try {
- assertNotNull("OutputStream null ?", mockMimeResponse.getPortletOutputStream());
- } catch (Exception ex) {
- fail("MockMimeResponse get outputstream failed. Exception: " + ex);
- }
- PortletURL portletUrl = mockMimeResponse.createRenderURL();
- assertNotNull("RenderURL null ?", portletUrl);
- portletUrl = mockMimeResponse.createActionURL();
- assertNotNull("ActionURL null ?", portletUrl);
- ResourceURL resourceURL = mockMimeResponse.createResourceURL();
- assertNotNull("ResourceURL null ?", resourceURL);
- assertNotNull("CacheControl null ?", mockMimeResponse.getCacheControl());
-
- try {
- OutputStream outputStream = mockMimeResponse.getPortletOutputStream();
- assertNotNull("OutputStream null ?", outputStream);
- outputStream.write(TEST_FAKECONTENT_ASBYTES);
- final byte[] writeResult = mockMimeResponse.getContentAsByteArray();
- assertArrayEquals("Written byte array does not match original ?", TEST_FAKECONTENT_ASBYTES, writeResult);
- assertTrue("Buffer not committed after processing ?", mockMimeResponse.isCommitted());
- } catch (Exception ex) {
- fail("MockMimeResponse get/process outputstream failed. Exception: " + ex);
- }
- try {
- mockMimeResponse.resetBuffer();
- } catch (IllegalStateException ise) {
- // Expected failure
- }
-
- mockMimeResponse.setCommitted(false);
- mockMimeResponse.resetBuffer();
- try {
- PrintWriter printWriter = mockMimeResponse.getWriter();
- assertNotNull("PrintWriter null ?", printWriter);
- printWriter.print(TEST_FAKECONTENT);
- mockMimeResponse.flushBuffer();
- final byte[] writeResult = mockMimeResponse.getContentAsByteArray();
- assertArrayEquals("Written byte array does not match original ?", TEST_FAKECONTENT_ASBYTES, writeResult);
- assertTrue("Buffer not committed after processing ?", mockMimeResponse.isCommitted());
- final String writeResultAsString = mockMimeResponse.getContentAsString();
- assertEquals("Written result does not match original ?", TEST_FAKECONTENT, writeResultAsString);
- } catch (Exception ex) {
- fail("MockMimeResponse get/process printwriter failed. Exception: " + ex);
- }
- try {
- mockMimeResponse.reset();
- } catch (IllegalStateException ise) {
- // Expected failure
- }
-
- mockMimeResponse.setCommitted(false);
- mockMimeResponse.reset();
- assertNull("After reset, character encoding not null ?", mockMimeResponse.getCharacterEncoding());
- assertNull("After reset, content-type not null ?", mockMimeResponse.getContentType());
- assertNull("After reset, locale not null ?", mockMimeResponse.getLocale());
- }
-
- public void testMockMultipartActionRequest() {
- final String TEST_FILENAME = "TEST_TEMPFILE";
- final String TEST_FILENAME2 = "TEST_TEMPFILE2";
- final String TEST_CONTENT_TYPE = "text/html";
- final String TEST_FAKECONTENT = "Some fake content for the test.";
- final byte[] TEST_FAKECONTENT_ASBYTES = TEST_FAKECONTENT.getBytes(StandardCharsets.UTF_8);
-
- // Call each constructor in sequence, do some basic checks
- MockMultipartActionRequest mockMultipartActionRequest = new MockMultipartActionRequest();
- assertFalse("Initial multipartrequest has file names ?", mockMultipartActionRequest.getFileNames().hasNext());
- assertTrue("Initial multipartrequest has nonempty map ?", mockMultipartActionRequest.getFileMap().isEmpty());
- assertTrue("Initial multipartrequest has nonempty multivalue map ?", mockMultipartActionRequest.getMultiFileMap().isEmpty());
- final MultipartFile multipartFile = new TestMockMultipartFile(TEST_FILENAME, TEST_FILENAME, TEST_CONTENT_TYPE, TEST_FAKECONTENT_ASBYTES);
- final MultipartFile multipartFile2 = new TestMockMultipartFile(TEST_FILENAME2, TEST_FILENAME2, TEST_CONTENT_TYPE, TEST_FAKECONTENT_ASBYTES);
- mockMultipartActionRequest.addFile(multipartFile);
- assertTrue("Multipartrequest does not have file names ?", mockMultipartActionRequest.getFileNames().hasNext());
- assertFalse("Multipartrequest does not have nonempty map ?", mockMultipartActionRequest.getFileMap().isEmpty());
- assertFalse("Multipartrequest does not have nonempty multivalue map ?", mockMultipartActionRequest.getMultiFileMap().isEmpty());
- mockMultipartActionRequest.addFile(multipartFile2);
- assertTrue("Multipartrequest does not have file names ?", mockMultipartActionRequest.getFileNames().hasNext());
- assertFalse("Multipartrequest does not have nonempty map ?", mockMultipartActionRequest.getFileMap().isEmpty());
- assertFalse("Multipartrequest does not have nonempty multivalue map ?", mockMultipartActionRequest.getMultiFileMap().isEmpty());
- assertEquals("Retrieved file 1 not as expected ?", multipartFile, mockMultipartActionRequest.getFile(TEST_FILENAME));
- assertEquals("Retrieved file 1 content-type not as expected ?", TEST_CONTENT_TYPE, mockMultipartActionRequest.getMultipartContentType(TEST_FILENAME));
- assertEquals("Retrieved file 2 not as expected ?", multipartFile2, mockMultipartActionRequest.getFile(TEST_FILENAME2));
- assertEquals("Retrieved file 2 content-type not as expected ?", TEST_CONTENT_TYPE, mockMultipartActionRequest.getMultipartContentType(TEST_FILENAME2));
- final Map fileMap = mockMultipartActionRequest.getFileMap();
- assertNotNull("File map is null ?", fileMap);
- assertTrue("File 1 name not in map ?", fileMap.containsKey(TEST_FILENAME));
- assertTrue("File 2 name not in map ?", fileMap.containsKey(TEST_FILENAME2));
- assertTrue("File 1 not in map ?", fileMap.containsValue(multipartFile));
- assertTrue("File 2 not in map ?", fileMap.containsValue(multipartFile2));
- MultiValueMap fileMultiValueMap = mockMultipartActionRequest.getMultiFileMap();
- assertNotNull("MultiValue file map is null ?", fileMultiValueMap);
- MultipartFile retrievedFile = fileMultiValueMap.getFirst(TEST_FILENAME);
- assertNotNull("File 1 1st value is null ?", retrievedFile);
- assertEquals("File 1 not in multivalue map ?", multipartFile, retrievedFile);
- retrievedFile = fileMultiValueMap.getFirst(TEST_FILENAME2);
- assertNotNull("File 2 1st value is null ?", retrievedFile);
- assertEquals("File 2 not in multivalue map ?", multipartFile2, retrievedFile);
- }
-
- public void testMockPortalContext() {
- final String TEST_PROPERTY = "TEST_PROPERTY";
- final String TEST_PROPERTY_VALUE = "Property_Value_1";
- final String TEST_PROPERTY2 = "TEST_PROPERTY2";
- final String TEST_PROPERTY2_VALUE = "Property_Value_2";
-
- // Call each constructor in sequence, do some basic checks
- final MockPortalContext mockPortalContext = new MockPortalContext();
- assertNotNull("MockPortalContext portalInfo null ?", mockPortalContext.getPortalInfo());
- assertNotNull("MockPortalContext property names null ?", mockPortalContext.getPropertyNames());
- assertFalse("MockPortalConext initial propertyNames not empty ?", mockPortalContext.getPropertyNames().hasMoreElements());
- final Enumeration supportedPortletModes = mockPortalContext.getSupportedPortletModes();
- assertNotNull("MockPortalContext supported portlet modes null ?", supportedPortletModes);
- final ArrayList portletModeList = new ArrayList<>();
- while (supportedPortletModes.hasMoreElements()) {
- portletModeList.add(supportedPortletModes.nextElement());
- }
- assertEquals("MockPortalContext does not support three modes ?", 3, portletModeList.size());
- assertTrue("MockPortalContext does not contain PortletMode.VIEW ?", portletModeList.contains(PortletMode.VIEW));
- assertTrue("MockPortalContext does not contain PortletMode.EDIT ?", portletModeList.contains(PortletMode.EDIT));
- assertTrue("MockPortalContext does not contain PortletMode.HELP ?", portletModeList.contains(PortletMode.HELP));
-
- final Enumeration supportedWindowStates = mockPortalContext.getSupportedWindowStates();
- assertNotNull("MockPortalContext supported window modes null ?", supportedWindowStates);
- final ArrayList windowStateList = new ArrayList<>();
- while (supportedWindowStates.hasMoreElements()) {
- windowStateList.add(supportedWindowStates.nextElement());
- }
- assertEquals("MockPortalContext does not support three states ?", 3, windowStateList.size());
- assertTrue("MockPortalContext does not contain WindowState.NORMAL ?", windowStateList.contains(WindowState.NORMAL));
- assertTrue("MockPortalContext does not contain WindowState.MAXIMIZED ?", windowStateList.contains(WindowState.MAXIMIZED));
- assertTrue("MockPortalContext does not contain WindowState.MINIMIZED ?", windowStateList.contains(WindowState.MINIMIZED));
-
- mockPortalContext.setProperty(TEST_PROPERTY, TEST_PROPERTY_VALUE);
- mockPortalContext.setProperty(TEST_PROPERTY2, TEST_PROPERTY2_VALUE);
- final Enumeration propertyNames = mockPortalContext.getPropertyNames();
- assertNotNull("MockPortalContext property names null ?", propertyNames);
- final ArrayList propertyNamesList = new ArrayList<>();
- while (propertyNames.hasMoreElements()) {
- propertyNamesList.add(propertyNames.nextElement());
- }
- assertEquals("MockPortalContext does not contain two properties ?", 2, propertyNamesList.size());
- assertTrue("MockPortalContext does not contain property name " + TEST_PROPERTY + " ?", propertyNamesList.contains(TEST_PROPERTY));
- assertTrue("MockPortalContext does not contain property name " + TEST_PROPERTY2 + " ?", propertyNamesList.contains(TEST_PROPERTY2));
- assertEquals("MockPortalContext value of property name " + TEST_PROPERTY + " not as expected ?", TEST_PROPERTY_VALUE, mockPortalContext.getProperty(TEST_PROPERTY));
- assertEquals("MockPortalContext value of property name " + TEST_PROPERTY2 + " not as expected ?", TEST_PROPERTY2_VALUE, mockPortalContext.getProperty(TEST_PROPERTY2));
- }
-
- public void testMockPortletConfig() {
- final String TEST_PORTLETNAME = "TestPortletName";
- final String TEST_INITPARAM = "TEST_INITPARAM";
- final String TEST_INITPARAM_VALUE = "Init_Value_1";
- final String TEST_INITPARAM2= "TEST_INITPARAM2";
- final String TEST_INITPARAM_VALUE2 = "Init_Value_2";
- final String TEST_RENDERPARAM_NAME = "Test_RenderParam_1";
- final String TEST_RENDERPARAM_NAME2 = "Test_RenderParam_2";
- final String TEST_DEFAULTNAMESPACE = "Test_Default_Namespace";
- final QName TEST_QNAME = new QName(TEST_PORTLETNAME);
- final QName TEST_QNAME2 = new QName(TEST_DEFAULTNAMESPACE);
- final String TEST_RUNTIME_OPTION = "TEST_RUNTIME_OPTION";
- final String TEST_RUNTIME_OPTION2 = "TEST_RUNTIME_OPTION2";
- final String TEST_RUNTIME_VALUE1 = "Test_Runtime_Option1";
- final String TEST_RUNTIME_VALUE2 = "Test_Runtime_Option2";
-
- // Call each constructor in sequence, do some basic checks
- MockPortletConfig mockPortletConfig = new MockPortletConfig();
- assertNotNull("MockPortletConfig default PortletContext is null ?", mockPortletConfig.getPortletContext());
- assertEquals("MockPortletConfig default name not empty string ?", "", mockPortletConfig.getPortletName());
- mockPortletConfig = new MockPortletConfig(TEST_PORTLETNAME);
- assertNotNull("MockPortletConfig default PortletContext is null ?", mockPortletConfig.getPortletContext());
- assertEquals("MockPortletConfig name not constructor set value ?", TEST_PORTLETNAME, mockPortletConfig.getPortletName());
- final MockPortletContext mockPortletContext = new MockPortletContext();
- mockPortletConfig = new MockPortletConfig(mockPortletContext, TEST_PORTLETNAME);
- assertEquals("MockPortletConfig PortletContext constructor set value ?", mockPortletContext, mockPortletConfig.getPortletContext());
- assertEquals("MockPortletConfig name not constructor set value ?", TEST_PORTLETNAME, mockPortletConfig.getPortletName());
- assertNull("MockPortletConfig default locale resource bundle not null ?", mockPortletConfig.getResourceBundle(Locale.getDefault()));
- final ResourceBundle resourceBundle = new TetMockResourceBundle();
- mockPortletConfig.setResourceBundle(Locale.getDefault(), resourceBundle);
- assertEquals("Default locale resource bundle not set value ?", resourceBundle, mockPortletConfig.getResourceBundle(Locale.getDefault()));
-
- assertNull(TEST_INITPARAM + " present before set ?", mockPortletConfig.getInitParameter(TEST_INITPARAM));
- assertNull(TEST_INITPARAM2 + " present before set ?", mockPortletConfig.getInitParameter(TEST_INITPARAM));
- mockPortletConfig.addInitParameter(TEST_INITPARAM, TEST_INITPARAM_VALUE);
- mockPortletConfig.addInitParameter(TEST_INITPARAM2, TEST_INITPARAM_VALUE2);
- assertEquals("Retrieved init parameter 1 does not match set value ?", TEST_INITPARAM_VALUE, mockPortletConfig.getInitParameter(TEST_INITPARAM));
- assertEquals("Retrieved init parameter 2 does not match set value ?", TEST_INITPARAM_VALUE2, mockPortletConfig.getInitParameter(TEST_INITPARAM2));
- final Enumeration initParameterNames = mockPortletConfig.getInitParameterNames();
- int initParameterNameCount = 0;
- assertNotNull("InitParameter names null after additions ?", initParameterNames);
- assertTrue("InitParameter names empty after additions ?", initParameterNames.hasMoreElements());
- while (initParameterNames.hasMoreElements()) {
- initParameterNameCount++;
- String currentInitParameterName = initParameterNames.nextElement();
- assertTrue("Initparam name not one of two expected matches ?", TEST_INITPARAM.equals(currentInitParameterName) ||
- TEST_INITPARAM2.equals(currentInitParameterName));
- }
- assertEquals("InitParameter names size not 2 ?", 2, initParameterNameCount);
-
- assertFalse("Initial renderparam names not empty ?", mockPortletConfig.getPublicRenderParameterNames().hasMoreElements());
- mockPortletConfig.addPublicRenderParameterName(TEST_RENDERPARAM_NAME);
- mockPortletConfig.addPublicRenderParameterName(TEST_RENDERPARAM_NAME2);
- final Enumeration publicRenderParameterNames = mockPortletConfig.getPublicRenderParameterNames();
- int publicRenderParameterNameCount = 0;
- assertNotNull("PublicRenderParameter names null after additions ?", publicRenderParameterNames);
- assertTrue("PublicRenderParameter names empty after additions ?", publicRenderParameterNames.hasMoreElements());
- while (publicRenderParameterNames.hasMoreElements()) {
- publicRenderParameterNameCount++;
- String currentPublicRenderParameterName = publicRenderParameterNames.nextElement();
- assertTrue("PublicRenderParameter name not one of two expected matches ?", TEST_RENDERPARAM_NAME.equals(currentPublicRenderParameterName) ||
- TEST_RENDERPARAM_NAME2.equals(currentPublicRenderParameterName));
- }
- assertEquals("PublicRenderParameter names size not 2 ?", 2, publicRenderParameterNameCount);
- mockPortletConfig.setDefaultNamespace(TEST_DEFAULTNAMESPACE);
- assertEquals("Default namespace not set value ?", TEST_DEFAULTNAMESPACE, mockPortletConfig.getDefaultNamespace());
-
- assertFalse("Initial publishing event QNames not empty ?", mockPortletConfig.getPublishingEventQNames().hasMoreElements());
- assertFalse("Initial processing event QNames not empty ?", mockPortletConfig.getProcessingEventQNames().hasMoreElements());
- mockPortletConfig.addPublishingEventQName(TEST_QNAME);
- mockPortletConfig.addProcessingEventQName(TEST_QNAME2);
- final Enumeration publishingEventQNames = mockPortletConfig.getPublishingEventQNames();
- assertNotNull("PublishingEventQNames names null after additions ?", publishingEventQNames);
- assertTrue("PublishingEventQNames names empty after additions ?", publishingEventQNames.hasMoreElements());
- final QName firstPublishingEventQName = publishingEventQNames.nextElement();
- assertEquals("First publishing event QName not set value ?", TEST_QNAME, firstPublishingEventQName);
- final Enumeration processingEventQNames = mockPortletConfig.getProcessingEventQNames();
- assertNotNull("ProcessingEventQNames names null after additions ?", processingEventQNames);
- assertTrue("ProcessingEventQNames names empty after additions ?", processingEventQNames.hasMoreElements());
- final QName firstProcessingEventQName = processingEventQNames.nextElement();
- assertEquals("First processing event QName not set value ?", TEST_QNAME2, firstProcessingEventQName);
-
- assertFalse("Initial supported locales not empty ?", mockPortletConfig.getSupportedLocales().hasMoreElements());
- mockPortletConfig.addSupportedLocale(Locale.getDefault());
- final Enumeration supportedLocales = mockPortletConfig.getSupportedLocales();
- assertNotNull("Supported locales null after additions ?", supportedLocales);
- assertTrue("Supported locales names empty after additions ?", supportedLocales.hasMoreElements());
- final Locale firstSupportedLocale = supportedLocales.nextElement();
- assertEquals("First supported locale not set value ?", Locale.getDefault(), firstSupportedLocale);
-
- assertTrue("Portlet runtime options not empty before set ?", mockPortletConfig.getContainerRuntimeOptions().isEmpty());
- mockPortletConfig.addContainerRuntimeOption(TEST_RUNTIME_OPTION, TEST_RUNTIME_VALUE1);
- mockPortletConfig.addContainerRuntimeOption(TEST_RUNTIME_OPTION2, TEST_RUNTIME_VALUE2);
- final Map containerRuntimeOptions = mockPortletConfig.getContainerRuntimeOptions();
- assertNotNull("Runtime options null after additions ?", containerRuntimeOptions);
- assertFalse("Runtime options empty after additions ?", containerRuntimeOptions.isEmpty());
- assertTrue("Runtime option 1 not present after setting ?", containerRuntimeOptions.containsKey(TEST_RUNTIME_OPTION));
- assertTrue("Runtime option 2 not present after setting ?", containerRuntimeOptions.containsKey(TEST_RUNTIME_OPTION2));
- assertEquals("Runtime option 1 not equal to set value ?", TEST_RUNTIME_VALUE1, containerRuntimeOptions.get(TEST_RUNTIME_OPTION)[0]);
- assertEquals("Runtime option 2 not equal to set value ?", TEST_RUNTIME_VALUE2, containerRuntimeOptions.get(TEST_RUNTIME_OPTION2)[0]);
- }
-
- public void testMockPortletContext() {
- final String TEST_ATTRIBUTE = "TEST_ATTRIBUTE";
- final String TEST_ATTRIBUTE_VALUE = "Attribute_Value_1";
- final String TEST_ATTRIBUTE2 = "TEST_ATTRIBUTE2";
- final String TEST_ATTRIBUTE_VALUE2 = "Attribute_Value_2";
- final String TEST_INITPARAM = "TEST_INITPARAM";
- final String TEST_INITPARAM_VALUE = "Init_Value_1";
- final String TEST_INITPARAM2 = "TEST_INITPARAM2";
- final String TEST_INITPARAM_VALUE2 = "Init_Value_2";
- final String TEST_CONTEXT_NAME = "TEST_CONTEXT_NAME";
- final String TEST_RUNTIME_OPTION = "TEST_RUNTIME_OPTION";
- final String TEST_RUNTIME_OPTION2 = "TEST_RUNTIME_OPTION2";
-
- // Call each constructor in sequence, do some basic checks
- final MockPortletContext mockPortletContext = new MockPortletContext();
- assertNotNull("MockPortletContext serverInfo null ?", mockPortletContext.getServerInfo());
- try {
- assertNotNull("MockPortletContext PortletRequestDispatcher null ?", mockPortletContext.getRequestDispatcher("IllegalPrefix"));
- fail("PortletRequestDispatcher path must start with /");
- } catch (IllegalArgumentException iae) {
- // Expected exception
- }
- assertNotNull("MockPortletContext PortletRequestDispatcher for / null ?", mockPortletContext.getRequestDispatcher("/"));
- assertNull("MockPortletContext named PortletRequestDispatcher not null ?", mockPortletContext.getNamedDispatcher("SomeName"));
- assertNotNull("MockPortletContext resource stream for / null ?", mockPortletContext.getResourceAsStream("/"));
- assertNull("MockPortletContext resource stream for /ThisDoesNotExist not null ?", mockPortletContext.getResourceAsStream("/ThisDoesNotExist"));
- assertTrue("MockPortletContext major version not >= 2 ?", mockPortletContext.getMajorVersion() >= 2);
- assertTrue("MockPortletContext minor version not >= 0 ?", mockPortletContext.getMajorVersion() >= 0);
- assertNull("MockPortletContext MIME type for / not null ?", mockPortletContext.getMimeType("/"));
- assertNotNull("MockPortletContext real path for / null ?", mockPortletContext.getRealPath("/"));
- assertNull("MockPortletContext real path for /ThisDoesNotExist not null ?", mockPortletContext.getRealPath("/ThisDoesNotExist"));
- assertNotNull("MockPortletContext resource paths for / null ?", mockPortletContext.getResourcePaths("/"));
- assertNull("MockPortletContext resource paths for / null ?", mockPortletContext.getResourcePaths("/ThisDoesNotExist"));
- try {
- assertNotNull("MockPortletContext resource URL for / null ?", mockPortletContext.getResource("/"));
- } catch (MalformedURLException mue) {
- fail("MockPortletContext resource URL for / failed. Exception: " + mue);
- }
- try {
- assertNull("MockPortletContext resource URL for /ThisDoesNotExist not null ?", mockPortletContext.getResource("/ThisDoesNotExist"));
- } catch (MalformedURLException mue) {
- fail("MockPortletContext resource URL for /ThisDoesNotExist failed. Exception: " + mue);
- }
-
- assertNull(TEST_ATTRIBUTE + " present before set ?", mockPortletContext.getAttribute(TEST_ATTRIBUTE));
- assertNull(TEST_ATTRIBUTE2 + " present before set ?", mockPortletContext.getAttribute(TEST_ATTRIBUTE2));
- mockPortletContext.setAttribute(TEST_ATTRIBUTE, TEST_ATTRIBUTE_VALUE);
- mockPortletContext.setAttribute(TEST_ATTRIBUTE2, TEST_ATTRIBUTE_VALUE2);
- assertEquals("Retrieved atribute 1 does not match set value ?", TEST_ATTRIBUTE_VALUE, mockPortletContext.getAttribute(TEST_ATTRIBUTE));
- assertEquals("Retrieved atribute 2 does not match set value ?", TEST_ATTRIBUTE_VALUE2, mockPortletContext.getAttribute(TEST_ATTRIBUTE2));
- final Enumeration attributeNames = mockPortletContext.getAttributeNames();
- int attributeNameCount = 0;
- assertNotNull("Attribute names null after additions ?", attributeNames);
- assertTrue("Attribute names empty after additions ?", attributeNames.hasMoreElements());
- while (attributeNames.hasMoreElements()) {
- attributeNameCount++;
- String currentAttibuteName = attributeNames.nextElement();
- assertTrue("Attribute name not one of two or three expected matches ?", TEST_ATTRIBUTE.equals(currentAttibuteName) ||
- TEST_ATTRIBUTE2.equals(currentAttibuteName) ||
- WebUtils.TEMP_DIR_CONTEXT_ATTRIBUTE.equals(currentAttibuteName));
- }
- assertTrue("Atribute names size not 2 or 3 ?", attributeNameCount >= 2 && attributeNameCount <= 3);
-
- assertNull(TEST_INITPARAM + " present before set ?", mockPortletContext.getInitParameter(TEST_INITPARAM));
- assertNull(TEST_INITPARAM2 + " present before set ?", mockPortletContext.getInitParameter(TEST_INITPARAM));
- mockPortletContext.addInitParameter(TEST_INITPARAM, TEST_INITPARAM_VALUE);
- mockPortletContext.addInitParameter(TEST_INITPARAM2, TEST_INITPARAM_VALUE2);
- assertEquals("Retrieved init parameter 1 does not match set value ?", TEST_INITPARAM_VALUE, mockPortletContext.getInitParameter(TEST_INITPARAM));
- assertEquals("Retrieved init parameter 2 does not match set value ?", TEST_INITPARAM_VALUE2, mockPortletContext.getInitParameter(TEST_INITPARAM2));
- final Enumeration initParameterNames = mockPortletContext.getInitParameterNames();
- int initParameterNameCount = 0;
- assertNotNull("InitParameter names null after additions ?", initParameterNames);
- assertTrue("InitParameter names empty after additions ?", initParameterNames.hasMoreElements());
- while (initParameterNames.hasMoreElements()) {
- initParameterNameCount++;
- String currentInitParameterName = initParameterNames.nextElement();
- assertTrue("Initparam name not one of two expected matches ?", TEST_INITPARAM.equals(currentInitParameterName) ||
- TEST_INITPARAM2.equals(currentInitParameterName));
- }
- assertEquals("InitParameter names size not 2 ?", 2, initParameterNameCount);
-
- mockPortletContext.log("Test logging call");
- mockPortletContext.log("Test logging call", new Exception("Fake Exception"));
-
- assertEquals("Default portlet context name not as expected ?", "MockPortletContext", mockPortletContext.getPortletContextName());
- mockPortletContext.setPortletContextName(TEST_CONTEXT_NAME);
- assertEquals("Portlet context name not equal to set value ?", TEST_CONTEXT_NAME, mockPortletContext.getPortletContextName());
-
- assertFalse("Portlet runtime options not empty before set ?", mockPortletContext.getContainerRuntimeOptions().hasMoreElements());
- mockPortletContext.addContainerRuntimeOption(TEST_RUNTIME_OPTION);
- mockPortletContext.addContainerRuntimeOption(TEST_RUNTIME_OPTION2);
- final Enumeration containerRuntimeOptions = mockPortletContext.getContainerRuntimeOptions();
- int containerRuntimeOptionsCount = 0;
- assertNotNull("Runtime options null after additions ?", containerRuntimeOptions);
- assertTrue("Runtime options empty after additions ?", containerRuntimeOptions.hasMoreElements());
- while (containerRuntimeOptions.hasMoreElements()) {
- containerRuntimeOptionsCount++;
- String currentRuntimeOption = containerRuntimeOptions.nextElement();
- assertTrue("Runtime option not one of two expected matches ?", TEST_RUNTIME_OPTION.equals(currentRuntimeOption) ||
- TEST_RUNTIME_OPTION2.equals(currentRuntimeOption));
- }
- assertEquals("Runtime options size not 2 ?", 2, containerRuntimeOptionsCount);
- }
-
- public void testMockPortletPreferences() {
- final String PORTLET_READONLY = "PORTLET_READONLY";
- final String PORTLET_READONLY_VALUE = "Readonly_Value_1";
- final String PORTLET_READONLY2 = "PORTLET_READONLY2";
- final String PORTLET_READONLY2_VALUE = "Readonly_Value_2";
- final String PORTLET_WRITEABLE = "PORTLET_WRITEABLE";
- final String PORTLET_WRITEABLE_VALUE = "Writeable_Value_1";
- final String PORTLET_WRITEABLE2 = "PORTLET_WRITEABLE2";
- final String PORTLET_WRITEABLE2_VALUE = "Writeable_Value_2";
- final String PORTLET_WRITEABLE_ARRAY = "PORTLET_WRITEABLE_ARRAY";
- final String[] PORTLET_WRITEABLE_ARRAY_VALUE = { "Writeable_Array_Value_1", "Writeable_Array_Value" };
-
- // Call each constructor in sequence, do some basic checks
- final MockPortletPreferences mockPortletPreferences = new MockPortletPreferences();
- assertFalse("MockPortletPreferences initial preferences names non-empty ?", mockPortletPreferences.getNames().hasMoreElements());
- assertTrue("MockPortletPreferences initial preferences non-empty ?", mockPortletPreferences.getMap().isEmpty());
-
- // Test set readonly permitted before key exists
- assertFalse(PORTLET_READONLY + " readonly before set ?", mockPortletPreferences.isReadOnly(PORTLET_READONLY));
- assertFalse(PORTLET_READONLY2 + " readonly before set ?", mockPortletPreferences.isReadOnly(PORTLET_READONLY2));
- mockPortletPreferences.setReadOnly(PORTLET_READONLY, true);
- mockPortletPreferences.setReadOnly(PORTLET_READONLY2, true);
- assertTrue(PORTLET_READONLY + " not readonly after set ?", mockPortletPreferences.isReadOnly(PORTLET_READONLY));
- assertTrue(PORTLET_READONLY2 + " not readonly after set ?", mockPortletPreferences.isReadOnly(PORTLET_READONLY2));
- mockPortletPreferences.setReadOnly(PORTLET_READONLY, false);
- mockPortletPreferences.setReadOnly(PORTLET_READONLY2, false);
- assertFalse(PORTLET_READONLY + " readonly after clear ?", mockPortletPreferences.isReadOnly(PORTLET_READONLY));
- assertFalse(PORTLET_READONLY2 + " readonly after clear ?", mockPortletPreferences.isReadOnly(PORTLET_READONLY2));
-
- try {
- // Test initial set and replace
- mockPortletPreferences.setValue(PORTLET_READONLY, PORTLET_READONLY_VALUE);
- assertEquals("Set value mismatch ?", PORTLET_READONLY_VALUE, mockPortletPreferences.getValue(PORTLET_READONLY, null));
- mockPortletPreferences.setValue(PORTLET_READONLY, PORTLET_READONLY_VALUE);
- assertEquals("Set value mismatch ?", PORTLET_READONLY_VALUE, mockPortletPreferences.getValue(PORTLET_READONLY, null));
- } catch (Exception ex) {
- fail("Setvalue failed unexpectedly: " + ex);
- }
- try {
- // Test initial set and replace
- mockPortletPreferences.setValue(PORTLET_READONLY2, PORTLET_READONLY2_VALUE);
- assertEquals("Set value mismatch ?", PORTLET_READONLY2_VALUE, mockPortletPreferences.getValue(PORTLET_READONLY2, null));
- mockPortletPreferences.setValue(PORTLET_READONLY2, PORTLET_READONLY2_VALUE);
- assertEquals("Set value mismatch ?", PORTLET_READONLY2_VALUE, mockPortletPreferences.getValue(PORTLET_READONLY2, null));
- } catch (Exception ex) {
- fail("Setvalue failed unexpectedly: " + ex);
- }
-
- mockPortletPreferences.setReadOnly(PORTLET_READONLY, true);
- mockPortletPreferences.setReadOnly(PORTLET_READONLY2, true);
- try {
- // Test set of readonly value fails
- mockPortletPreferences.setValue(PORTLET_READONLY, PORTLET_READONLY_VALUE);
- fail("Setvalue worked unexpectedly for readonly value");
- } catch (Exception ex) {
- assertTrue("Unexpected exception type failure ? Ex: " + ex, ex instanceof ReadOnlyException);
- assertTrue(PORTLET_READONLY + " is not readonly ?", mockPortletPreferences.isReadOnly(PORTLET_READONLY));
- }
- try {
- // Test reset of readonly value fails
- mockPortletPreferences.reset(PORTLET_READONLY);
- fail("Reset worked unexpectedly for readonly value");
- } catch (Exception ex) {
- assertTrue("Unexpected exception type failure ? Ex: " + ex, ex instanceof ReadOnlyException);
- assertTrue(PORTLET_READONLY + " is not readonly ?", mockPortletPreferences.isReadOnly(PORTLET_READONLY));
- }
- try {
- // Test set of readonly value fails
- mockPortletPreferences.setValue(PORTLET_READONLY2, PORTLET_READONLY2_VALUE);
- fail("Setvalue worked unexpectedly for readonly value");
- } catch (Exception ex) {
- assertTrue("Unexpected exception type failure ? Ex: " + ex, ex instanceof ReadOnlyException);
- assertTrue(PORTLET_READONLY2 + " is not readonly ?", mockPortletPreferences.isReadOnly(PORTLET_READONLY2));
- }
- try {
- // Test reset of readonly value fails
- mockPortletPreferences.reset(PORTLET_READONLY2);
- fail("Reset worked unexpectedly for readonly value");
- } catch (Exception ex) {
- assertTrue("Unexpected exception type failure ? Ex: " + ex, ex instanceof ReadOnlyException);
- assertTrue(PORTLET_READONLY2 + " is not readonly ?", mockPortletPreferences.isReadOnly(PORTLET_READONLY2));
- }
-
- try {
- // Test initial set, get and reset
- mockPortletPreferences.setValue(PORTLET_WRITEABLE, PORTLET_WRITEABLE_VALUE);
- mockPortletPreferences.setValue(PORTLET_WRITEABLE2, PORTLET_WRITEABLE2_VALUE);
- assertEquals("Set value mismatch ?", PORTLET_WRITEABLE_VALUE, mockPortletPreferences.getValue(PORTLET_WRITEABLE, null));
- assertEquals("Set value mismatch ?", PORTLET_WRITEABLE2_VALUE, mockPortletPreferences.getValue(PORTLET_WRITEABLE2, null));
- assertFalse(PORTLET_WRITEABLE + " is readonly ?", mockPortletPreferences.isReadOnly(PORTLET_WRITEABLE));
- assertFalse(PORTLET_WRITEABLE2 + " is readonly ?", mockPortletPreferences.isReadOnly(PORTLET_WRITEABLE2));
- mockPortletPreferences.reset(PORTLET_WRITEABLE);
- mockPortletPreferences.reset(PORTLET_WRITEABLE2);
- assertNull("After reset getValue with null not null ?", mockPortletPreferences.getValue(PORTLET_WRITEABLE, null));
- assertNull("After reset getValue with null not null ?", mockPortletPreferences.getValue(PORTLET_WRITEABLE2, null));
- } catch (Exception ex) {
- fail("Set/Get/Reset failed unexpectedly: " + ex);
- }
-
- try {
- // Test initial array set, get, names and map
- mockPortletPreferences.setValues(PORTLET_WRITEABLE_ARRAY, PORTLET_WRITEABLE_ARRAY_VALUE);
-
- assertEquals("Set values mismatch ?", PORTLET_WRITEABLE_ARRAY_VALUE, mockPortletPreferences.getValues(PORTLET_WRITEABLE_ARRAY, null));
- assertFalse(PORTLET_WRITEABLE_ARRAY + " is readonly ?", mockPortletPreferences.isReadOnly(PORTLET_WRITEABLE_ARRAY));
-
- // There should be two readonly attributes plus the array attribute present at this point
- final Enumeration preferencesNames = mockPortletPreferences.getNames();
- assertNotNull("Preferences names null after additions ?", preferencesNames);
- assertTrue("Preferences names empty after additions ?", preferencesNames.hasMoreElements());
- int preferencesNameCount = 0;
- while (preferencesNames.hasMoreElements()) {
- preferencesNameCount++;
- String currentPreferencesName = preferencesNames.nextElement();
- assertTrue("Preferences name not one of three expected matches ?", PORTLET_WRITEABLE_ARRAY.equals(currentPreferencesName) ||
- PORTLET_READONLY.equals(currentPreferencesName) ||
- PORTLET_READONLY2.equals(currentPreferencesName));
- }
- assertEquals("Preferences names size not 3 ?", 3, preferencesNameCount);
-
- final Map preferencesMap = mockPortletPreferences.getMap();
- assertNotNull("Preferences map null ?", preferencesMap);
- assertEquals("Preferences map size not 3 ?", 3, preferencesMap.size());
- assertTrue("Map does not contain expected key ?", preferencesMap.containsKey(PORTLET_WRITEABLE_ARRAY));
- assertTrue("Map does not contain expected key ?", preferencesMap.containsKey(PORTLET_READONLY));
- assertTrue("Map does not contain expected key ?", preferencesMap.containsKey(PORTLET_READONLY2));
- assertTrue("Map does not contain expected value ?", preferencesMap.containsValue(PORTLET_WRITEABLE_ARRAY_VALUE));
- assertTrue("Map does not contain expected value ?", preferencesMap.containsValue(mockPortletPreferences.getValues(PORTLET_READONLY, null)));
- assertTrue("Map does not contain expected value ?", preferencesMap.containsValue(mockPortletPreferences.getValues(PORTLET_READONLY2, null)));
- } catch (Exception ex) {
- fail("Set/Get/Names/Map failed unexpectedly: " + ex);
- }
-
- // Verify store behaviour without validator present
- try {
- mockPortletPreferences.store();
- } catch (Exception ex) {
- fail("Store without validator failed ? Exception: " + ex);
- }
- // Verify store behaviour with validator present
- try {
- mockPortletPreferences.setPreferencesValidator(new BasicPreferencesValidator());
- mockPortletPreferences.store();
- fail("Basic validator did not prevent store as expected ?");
- } catch (Exception ex) {
- assertTrue("Basic validator did not produce UnsupportedOperationException ?", ex instanceof UnsupportedOperationException);
- }
- // Verify store behaviour after validator cleared
- try {
- mockPortletPreferences.setPreferencesValidator(null);
- mockPortletPreferences.store();
- } catch (Exception ex) {
- fail("Store after clearing validator failed ? Exception: " + ex);
- }
- }
-
- public void testMockPortletRequest() {
- final String TEST_DEFAULT_CONTENT_TYPE = "text/html";
- final String TEST_CONTENT_TYPE = "text/plain";
- final String TEST_CONTENT_TYPE2 = "text/csv";
- final String TEST_PROPERTY = "TEST_PROPERTY";
- final String TEST_PROPERTY_VALUE = "Property_Value_1";
- final String TEST_PROPERTY2 = "TEST_PROPERTY2";
- final String TEST_PROPERTY2_VALUE = "Property_Value_2";
- final String TEST_AUTHTYPE = "Test_Auth_Type";
- final String TEST_FAKECONTEXTPATH = "/fakeContextPath";
- final String TEST_FAKEREMOTEUSER = "fakeRemoteUser";
- final String TEST_FAKEUSERROLE = "fakeUserRole";
- final String TEST_ATTRIBUTE = "TEST_ATTRIBUTE";
- final String TEST_ATTRIBUTE_VALUE = "Attribute_Value_1";
- final String TEST_ATTRIBUTE2 = "TEST_ATTRIBUTE2";
- final String TEST_ATTRIBUTE_VALUE2 = "Attribute_Value_2";
- final String TEST_PARAM = "TEST_PARAM";
- final String TEST_PARAM_VALUE = "Param_Value_1";
- final String TEST_PARAM2 = "TEST_PARAM2";
- final String TEST_PARAM_VALUE2 = "PARAM_Value_2";
- final String TEST_ARRAYPARAM = "TEST_ARRAYPARAM";
- final String[] TEST_PARAM_ARRAYVALUE = { "ARRAYVALUE1", "ARRAYVALUE2" };
- final String TEST_SCHEME = "file";
- final String TEST_HOST = "localhost2";
- final int TEST_PORT = 8080;
- final String TEST_WINDOWID = "TEST_WINDOWID";
- final String TEST_COOKIE_ID = "TEST_COOKIE_ID";
- final String TEST_COOKIE_ID2 = "TEST_COOKIE_ID2";
- final String TEST_COOKIE_VALUE = "Cookie_Value";
- final String TEST_COOKIE_VALUE2 = "Cookie_Value2";
- final Cookie PORLET_TEST_COOKIE = new Cookie(TEST_COOKIE_ID, TEST_COOKIE_VALUE);
- final Cookie PORLET_TEST_COOKIE2 = new Cookie(TEST_COOKIE_ID2, TEST_COOKIE_VALUE2);
-
- // Call each constructor in sequence, do some basic checks
- MockPortletRequest mockPortletRequest = new MockPortletRequest();
- assertTrue("Default active state not true ?", mockPortletRequest.isActive());
- assertEquals("Default portlet mode not as expected ?", PortletMode.VIEW, mockPortletRequest.getPortletMode());
- assertEquals("Default window state not as expected ?", WindowState.NORMAL, mockPortletRequest.getWindowState());
- assertNotNull("Default preferences is null ?", mockPortletRequest.getPreferences());
- assertNotNull("Default portlet session is null ?", mockPortletRequest.getPortletSession());
- assertNotNull("Default portal context is null ?", mockPortletRequest.getPortalContext());
- assertEquals("Default context path not empty string ?", "", mockPortletRequest.getContextPath());
- assertNull("Default remote user not null ?", mockPortletRequest.getRemoteUser());
- assertNull("Default user principal not null ?", mockPortletRequest.getUserPrincipal());
- assertFalse("Default secure state not false ?", mockPortletRequest.isSecure());
- assertTrue("Default request sessionid not valid ?", mockPortletRequest.isRequestedSessionIdValid());
- assertEquals("Default locale not as expected ?", Locale.ENGLISH, mockPortletRequest.getLocale());
- assertEquals("Default response content-type not as expected ?", TEST_DEFAULT_CONTENT_TYPE, mockPortletRequest.getResponseContentType());
- assertNull("Default lifecycle phase attribute not null ?", mockPortletRequest.getAttribute(PortletRequest.LIFECYCLE_PHASE));
- assertEquals("Default scheme not as expected ?", "http", mockPortletRequest.getScheme());
- assertEquals("Default server name not as expected ?", "localhost", mockPortletRequest.getServerName());
- assertEquals("Default server port not as expected ?", 80, mockPortletRequest.getServerPort());
- final MockPortalContext mockPortalContext = new MockPortalContext();
- final MockPortletContext mockPortletContext = new MockPortletContext();
- new MockPortletRequest(mockPortletContext); // Only test is to confirm constructor completes without exception
- mockPortletRequest = new MockPortletRequest(mockPortalContext, mockPortletContext);
- assertEquals("Portal context does not match constructor-set value ?", mockPortalContext, mockPortletRequest.getPortalContext());
- mockPortletRequest.addResponseContentType(TEST_CONTENT_TYPE);
- mockPortletRequest.addResponseContentType(TEST_CONTENT_TYPE2);
- Enumeration contentTypes = mockPortletRequest.getResponseContentTypes();
- assertNotNull("MockPortletRequest content-types null ?", contentTypes);
- final ArrayList contentTypesList = new ArrayList<>();
- while (contentTypes.hasMoreElements()) {
- contentTypesList.add(contentTypes.nextElement());
- }
- assertEquals("MockPortletRequest does not contain three content-types ?", 3, contentTypesList.size());
- assertTrue("MockPortletRequest does not contain content-type " + TEST_CONTENT_TYPE + " ?", contentTypesList.contains(TEST_CONTENT_TYPE));
- assertTrue("MockPortletRequest does not contain content-type " + TEST_CONTENT_TYPE2 + " ?", contentTypesList.contains(TEST_CONTENT_TYPE2));
- assertTrue("MockPortletRequest does not contain default content-type + " + TEST_DEFAULT_CONTENT_TYPE + " ?", contentTypesList.contains(TEST_DEFAULT_CONTENT_TYPE));
- assertTrue("View portlet mode not allowed ?", mockPortletRequest.isPortletModeAllowed(PortletMode.VIEW));
- assertTrue("Edit portlet mode not allowed ?", mockPortletRequest.isPortletModeAllowed(PortletMode.EDIT));
- assertTrue("Help portlet mode not allowed ?", mockPortletRequest.isPortletModeAllowed(PortletMode.HELP));
- assertTrue("Normal window state not allowed ?", mockPortletRequest.isWindowStateAllowed(WindowState.NORMAL));
- assertTrue("Maximized window state not allowed ?", mockPortletRequest.isWindowStateAllowed(WindowState.MAXIMIZED));
- assertTrue("Minimized window state not allowed ?", mockPortletRequest.isWindowStateAllowed(WindowState.MINIMIZED));
- mockPortletRequest.setPortletMode(PortletMode.EDIT);
- assertEquals("Portlet mode does not match set value ?", PortletMode.EDIT, mockPortletRequest.getPortletMode());
- mockPortletRequest.setWindowState(WindowState.MAXIMIZED);
- assertEquals("Window state does not match set value ?", WindowState.MAXIMIZED, mockPortletRequest.getWindowState());
- final MockPortletPreferences mockPortletPreferences = new MockPortletPreferences();
- mockPortletRequest.setPreferences(mockPortletPreferences);
- assertEquals("Portlet preferences does not match set value ?", mockPortletPreferences, mockPortletRequest.getPreferences());
- final MockPortletSession mockPortletSession = new MockPortletSession(mockPortletContext);
- mockPortletRequest.setSession(mockPortletSession);
- assertEquals("Portlet session does not match set value ?", mockPortletSession, mockPortletRequest.getPortletSession());
- assertTrue("Set request sessionid not valid ?", mockPortletRequest.isRequestedSessionIdValid());
- mockPortletRequest.setRequestedSessionIdValid(false);
- assertFalse("Set request sessionid still valid after set invalid ?", mockPortletRequest.isRequestedSessionIdValid());
- mockPortletRequest.setRequestedSessionIdValid(true);
- assertTrue("Set request sessionid not valid after set valid ?", mockPortletRequest.isRequestedSessionIdValid());
-
- mockPortletRequest.setProperty(TEST_PROPERTY, TEST_PROPERTY_VALUE);
- mockPortletRequest.setProperty(TEST_PROPERTY2, TEST_PROPERTY2_VALUE);
- final Enumeration propertyNames = mockPortletRequest.getPropertyNames();
- assertNotNull("MockPortalContext property names null ?", propertyNames);
- final ArrayList propertyNamesList = new ArrayList<>();
- while (propertyNames.hasMoreElements()) {
- propertyNamesList.add(propertyNames.nextElement());
- }
- assertEquals("MockPortletRequest does not contain two properties ?", 2, propertyNamesList.size());
- assertTrue("MockPortletRequest does not contain property name " + TEST_PROPERTY + " ?", propertyNamesList.contains(TEST_PROPERTY));
- assertTrue("MockPortletRequest does not contain property name " + TEST_PROPERTY2 + " ?", propertyNamesList.contains(TEST_PROPERTY2));
- assertEquals("MockPortletRequest value of property name " + TEST_PROPERTY + " not as expected ?", TEST_PROPERTY_VALUE, mockPortletRequest.getProperty(TEST_PROPERTY));
- assertEquals("MockPortletRequest value of property name " + TEST_PROPERTY2 + " not as expected ?", TEST_PROPERTY2_VALUE, mockPortletRequest.getProperty(TEST_PROPERTY2));
- mockPortletRequest.addProperty(TEST_PROPERTY, TEST_PROPERTY2_VALUE);
- final Enumeration propertiesForName = mockPortletRequest.getProperties(TEST_PROPERTY);
- assertNotNull("MockPortletRequest properties for " + TEST_PROPERTY + " is null ?", propertiesForName);
- final ArrayList propertiesForNameList = new ArrayList<>();
- while (propertiesForName.hasMoreElements()) {
- propertiesForNameList.add(propertiesForName.nextElement());
- }
- assertEquals("MockPortletRequest does not contain two values for " + TEST_PROPERTY + " ?", 2, propertiesForNameList.size());
- assertTrue("MockPortletRequest does not contain expected value for property name " + TEST_PROPERTY + " ?", propertiesForNameList.contains(TEST_PROPERTY_VALUE));
- assertTrue("MockPortletRequest does not contain expected value for propety name " + TEST_PROPERTY + " ?", propertiesForNameList.contains(TEST_PROPERTY2_VALUE));
-
- mockPortletRequest.setAuthType(TEST_AUTHTYPE);
- assertEquals("Authtype not equal to set value ?", TEST_AUTHTYPE, mockPortletRequest.getAuthType());
- mockPortletRequest.setContextPath(TEST_FAKECONTEXTPATH);
- assertEquals("Context path not equal to set value ?", TEST_FAKECONTEXTPATH, mockPortletRequest.getContextPath());
- mockPortletRequest.setRemoteUser(TEST_FAKEREMOTEUSER);
- assertEquals("Remote user not equal to set value ?", TEST_FAKEREMOTEUSER, mockPortletRequest.getRemoteUser());
- final TestMockPrincipal testMockPrincipal = new TestMockPrincipal();
- mockPortletRequest.setUserPrincipal(testMockPrincipal);
- assertEquals("User principal not equal to set value ?", testMockPrincipal, mockPortletRequest.getUserPrincipal());
- mockPortletRequest.addUserRole(TEST_FAKEUSERROLE);
- assertTrue("Usser not in added role ?", mockPortletRequest.isUserInRole(TEST_FAKEUSERROLE));
-
- assertNull(TEST_PARAM + " present before set ?", mockPortletRequest.getParameter(TEST_PARAM));
- assertNull(TEST_PARAM2 + " present before set ?", mockPortletRequest.getParameter(TEST_PARAM));
- mockPortletRequest.addParameter(TEST_PARAM, TEST_PARAM_VALUE);
- mockPortletRequest.addParameter(TEST_PARAM2, TEST_PARAM_VALUE2);
- assertEquals("Retrieved parameter 1 does not match set value ?", TEST_PARAM_VALUE, mockPortletRequest.getParameter(TEST_PARAM));
- assertEquals("Retrieved parameter 2 does not match set value ?", TEST_PARAM_VALUE2, mockPortletRequest.getParameter(TEST_PARAM2));
- final Enumeration parameterNames = mockPortletRequest.getParameterNames();
- int parameterNameCount = 0;
- assertNotNull("Parameter names null after additions ?", parameterNames);
- assertTrue("Parameter names empty after additions ?", parameterNames.hasMoreElements());
- while (parameterNames.hasMoreElements()) {
- parameterNameCount++;
- String currentParameterName = parameterNames.nextElement();
- assertTrue("Param name not one of two expected matches ?", TEST_PARAM.equals(currentParameterName) ||
- TEST_PARAM2.equals(currentParameterName));
- }
- assertEquals("Parameter names size not 2 ?", 2, parameterNameCount);
- mockPortletRequest.addParameter(TEST_ARRAYPARAM, TEST_PARAM_ARRAYVALUE);
- assertArrayEquals("Array parameter value not set as expected ?", TEST_PARAM_ARRAYVALUE, mockPortletRequest.getParameterValues(TEST_ARRAYPARAM));
- final Map parameterMap = mockPortletRequest.getParameterMap();
- assertNotNull("Parameter map is null ?", parameterMap);
- assertTrue("Expected parameter not present ?", parameterMap.containsKey(TEST_PARAM));
- assertTrue("Expected parameter not present ?", parameterMap.containsKey(TEST_PARAM2));
- assertTrue("Expected parameter not present ?", parameterMap.containsKey(TEST_ARRAYPARAM));
-
- assertNull(TEST_ATTRIBUTE + " present before set ?", mockPortletRequest.getAttribute(TEST_ATTRIBUTE));
- assertNull(TEST_ATTRIBUTE2 + " present before set ?", mockPortletRequest.getAttribute(TEST_ATTRIBUTE2));
- mockPortletRequest.setAttribute(TEST_ATTRIBUTE, TEST_ATTRIBUTE_VALUE);
- mockPortletRequest.setAttribute(TEST_ATTRIBUTE2, TEST_ATTRIBUTE_VALUE2);
- assertEquals("Retrieved atribute 1 does not match set value ?", TEST_ATTRIBUTE_VALUE, mockPortletRequest.getAttribute(TEST_ATTRIBUTE));
- assertEquals("Retrieved atribute 2 does not match set value ?", TEST_ATTRIBUTE_VALUE2, mockPortletRequest.getAttribute(TEST_ATTRIBUTE2));
- final Enumeration attributeNames = mockPortletRequest.getAttributeNames();
- int attributeNameCount = 0;
- assertNotNull("Attribute names null after additions ?", attributeNames);
- assertTrue("Attribute names empty after additions ?", attributeNames.hasMoreElements());
- while (attributeNames.hasMoreElements()) {
- attributeNameCount++;
- String currentAttibuteName = attributeNames.nextElement();
- assertTrue("Attribute name not one of two or three expected matches ?", TEST_ATTRIBUTE.equals(currentAttibuteName) ||
- TEST_ATTRIBUTE2.equals(currentAttibuteName) ||
- PortletRequest.LIFECYCLE_PHASE.equals(currentAttibuteName));
- }
- assertTrue("Atribute names size not 2 or 3 ?", attributeNameCount >= 2 && attributeNameCount <= 3);
-
- mockPortletRequest.addPreferredLocale(Locale.FRENCH);
- assertEquals("Preferred locale not as expected ?", Locale.FRENCH, mockPortletRequest.getLocale());
- final Enumeration locales = mockPortletRequest.getLocales();
- assertNotNull("Locales null after additions ?", locales);
- assertTrue("Locales names empty after additions ?", locales.hasMoreElements());
- final Locale firstLocale = locales.nextElement();
- assertEquals("First locale not set value ?", Locale.FRENCH, firstLocale);
- final Locale secondLocale = locales.nextElement();
- assertEquals("Second locale not default value ?", Locale.ENGLISH, secondLocale);
- mockPortletRequest.setScheme(TEST_SCHEME);
- assertEquals("Scheme not equal to set value ?", TEST_SCHEME, mockPortletRequest.getScheme());
- mockPortletRequest.setServerName(TEST_HOST);
- assertEquals("Server name not equal to set value ?", TEST_HOST, mockPortletRequest.getServerName());
- mockPortletRequest.setServerPort(TEST_PORT);
- assertEquals("Server port not equal to set value ?", TEST_PORT, mockPortletRequest.getServerPort());
- mockPortletRequest.setWindowID(TEST_WINDOWID);
- assertEquals("Window id not equal to set value ?", TEST_WINDOWID, mockPortletRequest.getWindowID());
-
- mockPortletRequest.setCookies(PORLET_TEST_COOKIE, PORLET_TEST_COOKIE2);
- final Cookie[] cookies = mockPortletRequest.getCookies();
- assertNotNull("Cookies array null ?", cookies);
- assertEquals("Cookies array length not 2 ?", 2, cookies.length);
- for (Cookie cookie : cookies) {
- assertTrue("Cookie not one of set cookies ?", PORLET_TEST_COOKIE.equals(cookie) || PORLET_TEST_COOKIE2.equals(cookie));
- }
-
- final Map originalPrivateParameters = mockPortletRequest.getPrivateParameterMap();
- final Map originalPublicParameters = mockPortletRequest.getPublicParameterMap();
- assertNotNull("Original private parameters map is null ?", originalPrivateParameters);
- assertFalse("Original private parameters map is empty ?", originalPrivateParameters.isEmpty());
- assertTrue("Original private parameters map does not contain " + TEST_PARAM + " ?", originalPrivateParameters.containsKey(TEST_PARAM));
- assertTrue("Original private parameters map does not contain " + TEST_PARAM2 + " ?", originalPrivateParameters.containsKey(TEST_PARAM2));
- assertNotNull("Original public parameters map is null ?", originalPublicParameters);
- assertTrue("Original public parameters map is not empty ?", originalPublicParameters.isEmpty());
- mockPortletRequest.registerPublicParameter(TEST_PARAM2);
- final Map updatedPrivateParameters = mockPortletRequest.getPrivateParameterMap();
- final Map updatedPublicParameters = mockPortletRequest.getPublicParameterMap();
- assertNotNull("Updated private parameters map is null ?", updatedPrivateParameters);
- assertFalse("Updated private parameters map is empty ?", updatedPrivateParameters.isEmpty());
- assertFalse("Updated private parameters map contains " + TEST_PARAM2 + " ?", updatedPrivateParameters.containsKey(TEST_PARAM2));
- assertTrue("Updated private parameters map does not contain " + TEST_PARAM + " ?", updatedPrivateParameters.containsKey(TEST_PARAM));
- assertNotNull("Updated public parameters map is null ?", updatedPublicParameters);
- assertFalse("Updated public parameters map is empty ?", updatedPublicParameters.isEmpty());
- assertFalse("Updated public parameters map contains " + TEST_PARAM + " ?", updatedPublicParameters.containsKey(TEST_PARAM));
- assertTrue("Updated public parameters map does not contain " + TEST_PARAM2 + " ?", updatedPublicParameters.containsKey(TEST_PARAM2));
- }
-
- public void testMockPortletRequestDispatcher() {
- final String TEST_DISPATCH_URL = "localhost:8080/fakeurl";
-
- // Call each constructor in sequence, do some basic checks
- MockPortletRequestDispatcher mockPortletRequestDispatcher = new MockPortletRequestDispatcher(TEST_DISPATCH_URL);
- final MockRenderRequest mockRenderRequest = new MockRenderRequest();
- final MockRenderResponse mockRenderResponse = new MockRenderResponse();
- try {
- mockPortletRequestDispatcher.include(mockRenderRequest, mockRenderResponse);
- } catch (Exception ex) {
- fail("MockPortletRequestDispatcher include (render) failed. Exception: " + ex);
- }
- final MockPortletRequest mockPortletRequest = new MockPortletRequest();
- final MockPortletResponse mockPortletResponse = new MockPortletResponse();
- final MockMimeResponse mockMimeResponse = new MockMimeResponse();
- try {
- mockPortletRequestDispatcher.include(mockPortletRequest, mockPortletResponse);
- fail("Include of non-MockMimeResponse did not throw an exception ?");
- } catch (IllegalArgumentException iae) {
- // Expected failure
- } catch (Exception ex) {
- fail("MockPortletRequestDispatcher include (portlet) failed. Exception: " + ex);
- }
- try {
- mockPortletRequestDispatcher.include(mockPortletRequest, mockMimeResponse);
- } catch (Exception ex) {
- fail("MockPortletRequestDispatcher include (portlet) failed. Exception: " + ex);
- }
- try {
- mockPortletRequestDispatcher.forward(mockPortletRequest, mockPortletResponse);
- fail("Forward of non-MockMimeResponse did not throw an exception ?");
- } catch (IllegalArgumentException iae) {
- // Expected failure
- } catch (Exception ex) {
- fail("MockPortletRequestDispatcher forward failed. Exception: " + ex);
- }
- try {
- mockPortletRequestDispatcher.forward(mockPortletRequest, mockMimeResponse);
- } catch (Exception ex) {
- fail("MockPortletRequestDispatcher forward failed. Exception: " + ex);
- }
- }
-
- public void testMockPortletResponse() {
- final String TEST_ENCODE_URL = "localhost:8080/fakeforwardedurl?param1=param with spaces";
- final String TEST_NAMESPACE = "Test_Namespace";
- final String TEST_PROPERTY = "TEST_PROPERTY";
- final String TEST_PROPERTY_VALUE = "Property_Value_1";
- final String TEST_PROPERTY2 = "TEST_PROPERTY2";
- final String TEST_PROPERTY2_VALUE = "Property_Value_2";
- final String TEST_XMLPROPERTY = "TEST_XMLPROPERTY";
- final String TEST_XML_TAGNAME = "TEST_XML_TAGNAME";
- final String TEST_COOKIE_ID = "TEST_COOKIE_ID";
-
- // Call each constructor in sequence, do some basic checks
- MockPortletResponse mockPortletResponse = new MockPortletResponse();
- assertEquals("Default namespace not as expected ?", "", mockPortletResponse.getNamespace());
- assertNotNull("Default portal context null ?", mockPortletResponse.getPortalContext());
- assertEquals("Encoded URL not as expected ?", TEST_ENCODE_URL, mockPortletResponse.encodeURL(TEST_ENCODE_URL)); // Mock URL encode does nothing
- mockPortletResponse.setNamespace(TEST_NAMESPACE);
- assertEquals("Set namespace not as expected ?", TEST_NAMESPACE, mockPortletResponse.getNamespace());
- final MockPortalContext mockPortalContext = new MockPortalContext();
- mockPortletResponse = new MockPortletResponse(mockPortalContext);
- assertEquals("Portal context does not match constructor-set value ?", mockPortalContext, mockPortletResponse.getPortalContext());
-
- mockPortletResponse.setProperty(TEST_PROPERTY, TEST_PROPERTY_VALUE);
- mockPortletResponse.setProperty(TEST_PROPERTY2, TEST_PROPERTY2_VALUE);
- final Set propertyNames = mockPortletResponse.getPropertyNames();
- assertNotNull("MockPortletResponse property names null ?", propertyNames);
- assertEquals("MockPortletResponse does not contain two properties ?", 2, propertyNames.size());
- assertTrue("MockPortletResponse does not contain property name " + TEST_PROPERTY + " ?", propertyNames.contains(TEST_PROPERTY));
- assertTrue("MockPortletResponse does not contain property name " + TEST_PROPERTY2 + " ?", propertyNames.contains(TEST_PROPERTY2));
- assertEquals("MockPortletResponse value of property name " + TEST_PROPERTY + " not as expected ?", TEST_PROPERTY_VALUE, mockPortletResponse.getProperty(TEST_PROPERTY));
- assertEquals("MockPortletResponse value of property name " + TEST_PROPERTY2 + " not as expected ?", TEST_PROPERTY2_VALUE, mockPortletResponse.getProperty(TEST_PROPERTY2));
- mockPortletResponse.addProperty(TEST_PROPERTY, TEST_PROPERTY2_VALUE);
- final String[] propertiesForName = mockPortletResponse.getProperties(TEST_PROPERTY);
- assertNotNull("MockPortletResponse properties for " + TEST_PROPERTY + " is null ?", propertiesForName);
- final ArrayList propertiesForNameList = new ArrayList<>();
- propertiesForNameList.addAll(Arrays.asList(propertiesForName));
- assertEquals("MockPortletResponse does not contain two values for " + TEST_PROPERTY + " ?", 2, propertiesForNameList.size());
- assertTrue("MockPortletResponse does not contain expected value for property name " + TEST_PROPERTY + " ?", propertiesForNameList.contains(TEST_PROPERTY_VALUE));
- assertTrue("MockPortletResponse does not contain expected value for propety name " + TEST_PROPERTY + " ?", propertiesForNameList.contains(TEST_PROPERTY2_VALUE));
-
- final Cookie[] cookies = mockPortletResponse.getCookies();
- assertNotNull("Cookies array null ?", cookies);
- assertEquals("Cookies array length not 0 ?", 0, cookies.length);
- assertNull("Cookie found ?", mockPortletResponse.getCookie(TEST_COOKIE_ID));
-
- Set xmlPropertyNames = mockPortletResponse.getXmlPropertyNames();
- assertNotNull("MockPortletResponse XML property names null ?", xmlPropertyNames);
- assertTrue("XML properites set not empty ?", xmlPropertyNames.isEmpty());
- assertNull("XML property found ?", mockPortletResponse.getXmlProperty(TEST_XMLPROPERTY));
- Element[] xmlProperties = mockPortletResponse.getXmlProperties(TEST_XMLPROPERTY);
- assertNull("XML properties found ?", xmlProperties);
- Element element = mockPortletResponse.createElement(TEST_XML_TAGNAME);
- assertNotNull("MockPortletResponse XML element null ?", element);
- mockPortletResponse.addProperty(TEST_XMLPROPERTY, element);
- xmlPropertyNames = mockPortletResponse.getXmlPropertyNames();
- assertNotNull("MockPortletResponse XML property names null ?", xmlPropertyNames);
- assertFalse("XML properites set empty ?", xmlPropertyNames.isEmpty());
- assertNotNull("XML property not found ?", mockPortletResponse.getXmlProperty(TEST_XMLPROPERTY));
- xmlProperties = mockPortletResponse.getXmlProperties(TEST_XMLPROPERTY);
- assertNotNull("XML properties not found ?", xmlProperties);
- assertEquals("XML properties not expected size ?", 1, xmlProperties.length);
- assertEquals("XML property at index 0 not element value ?", element, xmlProperties[0]);
- }
-
- public void testMockPortletSession() {
- final String TEST_ATTRIBUTE = "TEST_ATTRIBUTE";
- final String TEST_ATTRIBUTE_VALUE = "Attribute_Value_1";
- final String TEST_ATTRIBUTE2 = "TEST_ATTRIBUTE2";
- final String TEST_ATTRIBUTE_VALUE2 = "Attribute_Value_2";
- final long TEST_START_TIME = System.currentTimeMillis();
- final int TEST_MAXINACTIVE_INTERVAL = 300;
-
- // Call each constructor in sequence, do some basic checks
- MockPortletSession mockPortletSession = new MockPortletSession();
- final String INITIAL_SESSION_ID = mockPortletSession.getId();
- assertNotNull("MockPortletSession session id null ?", INITIAL_SESSION_ID);
- assertFalse("MockPortletSession session is invalid ?", mockPortletSession.isInvalid());
- assertTrue("MockPortletSession session is not new ?", mockPortletSession.isNew());
- mockPortletSession.setNew(false);
- assertFalse("MockPortletSession session is still new ?", mockPortletSession.isNew());
- mockPortletSession.setNew(true);
- assertTrue("MockPortletSession session is not new after set ?", mockPortletSession.isNew());
- assertEquals("MockPortletSession max inactive interval not 0 ?", 0, mockPortletSession.getMaxInactiveInterval());
- assertNotNull("Default portlet context null ?", mockPortletSession.getPortletContext());
- assertTrue("MockPortletSession session creation time in past ?", mockPortletSession.getCreationTime() >= TEST_START_TIME);
- assertTrue("MockPortletSession session last accessed time in past ?", mockPortletSession.getLastAccessedTime() >= TEST_START_TIME);
- assertTrue("MockPortletSession session last accessed time older than creation time ?", mockPortletSession.getLastAccessedTime() >= mockPortletSession.getCreationTime());
- assertNotNull("Default portlet attribute map null ?", mockPortletSession.getAttributeMap());
- assertNotNull("Default portlet portletscope attribute map null ?", mockPortletSession.getAttributeMap(PortletSession.PORTLET_SCOPE));
- assertNotNull("Default portlet applicationscope attribute map null ?", mockPortletSession.getAttributeMap(PortletSession.APPLICATION_SCOPE));
- final MockPortletContext mockPortletContext = new MockPortletContext();
- mockPortletSession = new MockPortletSession(mockPortletContext);
- assertEquals("MockPortletSession portletcontext not equal to set value ?", mockPortletContext, mockPortletSession.getPortletContext());
- final String NEW_SESSION_ID = mockPortletSession.getId();
- assertNotNull("MockPortletSession session id null ?", NEW_SESSION_ID);
- assertNotEquals("Original and new session id match ?", NEW_SESSION_ID, INITIAL_SESSION_ID);
-
- assertNull(TEST_ATTRIBUTE + " present before set ?", mockPortletSession.getAttribute(TEST_ATTRIBUTE));
- assertNull(TEST_ATTRIBUTE2 + " present before set ?", mockPortletSession.getAttribute(TEST_ATTRIBUTE2));
- mockPortletSession.setAttribute(TEST_ATTRIBUTE, TEST_ATTRIBUTE_VALUE);
- mockPortletSession.setAttribute(TEST_ATTRIBUTE2, TEST_ATTRIBUTE_VALUE2);
- assertEquals("Retrieved atribute 1 does not match set value ?", TEST_ATTRIBUTE_VALUE, mockPortletSession.getAttribute(TEST_ATTRIBUTE));
- assertEquals("Retrieved atribute 2 does not match set value ?", TEST_ATTRIBUTE_VALUE2, mockPortletSession.getAttribute(TEST_ATTRIBUTE2));
- final Enumeration attributeNames = mockPortletSession.getAttributeNames();
- int attributeNameCount = 0;
- assertNotNull("Attribute names null after additions ?", attributeNames);
- assertTrue("Attribute names empty after additions ?", attributeNames.hasMoreElements());
- while (attributeNames.hasMoreElements()) {
- attributeNameCount++;
- String currentAttibuteName = attributeNames.nextElement();
- assertTrue("Attribute name not one of two expected matches ?", TEST_ATTRIBUTE.equals(currentAttibuteName) ||
- TEST_ATTRIBUTE2.equals(currentAttibuteName));
- }
- assertEquals("Atribute names size not expected value ?", 2, attributeNameCount);
- assertNull(TEST_ATTRIBUTE + " present before set (application scope) ?", mockPortletSession.getAttribute(TEST_ATTRIBUTE, PortletSession.APPLICATION_SCOPE));
- assertNull(TEST_ATTRIBUTE2 + " present before set (application scope) ?", mockPortletSession.getAttribute(TEST_ATTRIBUTE2, PortletSession.APPLICATION_SCOPE));
- mockPortletSession.setAttribute(TEST_ATTRIBUTE, TEST_ATTRIBUTE_VALUE, PortletSession.APPLICATION_SCOPE);
- mockPortletSession.setAttribute(TEST_ATTRIBUTE2, TEST_ATTRIBUTE_VALUE2, PortletSession.APPLICATION_SCOPE);
- assertEquals("Retrieved atribute 1 does not match set value (application scope) ?", TEST_ATTRIBUTE_VALUE, mockPortletSession.getAttribute(TEST_ATTRIBUTE, PortletSession.APPLICATION_SCOPE));
- assertEquals("Retrieved atribute 2 does not match set value (application scope) ?", TEST_ATTRIBUTE_VALUE2, mockPortletSession.getAttribute(TEST_ATTRIBUTE2, PortletSession.APPLICATION_SCOPE));
- final Enumeration attributeNamesApplication = mockPortletSession.getAttributeNames(PortletSession.APPLICATION_SCOPE);
- int attributeNameCountApplication = 0;
- assertNotNull("Attribute names null after additions (application scope) ?", attributeNamesApplication);
- assertTrue("Attribute names empty after additions (application scope) ?", attributeNamesApplication.hasMoreElements());
- while (attributeNamesApplication.hasMoreElements()) {
- attributeNameCountApplication++;
- String currentAttibuteName = attributeNamesApplication.nextElement();
- assertTrue("Attribute name not one of two expected matches (application scope) ?", TEST_ATTRIBUTE.equals(currentAttibuteName) ||
- TEST_ATTRIBUTE2.equals(currentAttibuteName));
- }
- assertEquals("Atribute names size not expected value (application scope) ?", 2, attributeNameCountApplication);
-
- assertTrue("MockPortletSession session is not new ?", mockPortletSession.isNew());
- mockPortletSession.access();
- assertFalse("MockPortletSession session is still new after access ?", mockPortletSession.isNew());
- mockPortletSession.setMaxInactiveInterval(TEST_MAXINACTIVE_INTERVAL);
- assertEquals("MockPortletSession max inactive interval not set value ?", TEST_MAXINACTIVE_INTERVAL, mockPortletSession.getMaxInactiveInterval());
- mockPortletSession.removeAttribute(TEST_ATTRIBUTE2);
- assertNull(TEST_ATTRIBUTE2 + " still present after removal ?", mockPortletSession.getAttribute(TEST_ATTRIBUTE2));
- mockPortletSession.removeAttribute(TEST_ATTRIBUTE, PortletSession.APPLICATION_SCOPE);
- assertNull(TEST_ATTRIBUTE + " still present after removal (application scope) ?", mockPortletSession.getAttribute(TEST_ATTRIBUTE, PortletSession.APPLICATION_SCOPE));
- final long BEFORE_INVALIDATE_TIME = System.currentTimeMillis();
- mockPortletSession.invalidate();
- assertTrue("MockPortletSession session is still valid after invalidate ?", mockPortletSession.isInvalid());
- assertNull(TEST_ATTRIBUTE + " still present after invalidate ?", mockPortletSession.getAttribute(TEST_ATTRIBUTE));
- assertNull(TEST_ATTRIBUTE2 + " still present after removal (application scope) ?", mockPortletSession.getAttribute(TEST_ATTRIBUTE2, PortletSession.APPLICATION_SCOPE));
- assertTrue("MockPortletSession session last accessed time older than creation time ?", mockPortletSession.getLastAccessedTime() >= mockPortletSession.getCreationTime());
- assertTrue("MockPortletSession session last accessed time older than time before invalidation ?", mockPortletSession.getLastAccessedTime() >= BEFORE_INVALIDATE_TIME);
- }
-
- public void testMockPortletURL() {
- final String TEST_PARAMETER = "TEST_PARAMETER";
-
- // Call each constructor in sequence, do some basic checks
- final MockPortalContext mockPortalContext = new MockPortalContext();
- final MockPortletURL mockPortletURL = new MockPortletURL(mockPortalContext, MockPortletURL.URL_TYPE_RENDER);
- assertNull("MockPortletURL default portlet mode not null ?", mockPortletURL.getPortletMode());
- assertNull("MockPortletURL default window state not null ?", mockPortletURL.getWindowState());
- try {
- mockPortletURL.setWindowState(WindowState.MAXIMIZED);
- } catch (Exception ex) {
- fail("MockPortletURL window state set failed. Exception: " + ex);
- }
- assertEquals("Window state does not match set value ?", WindowState.MAXIMIZED, mockPortletURL.getWindowState());
- try {
- mockPortletURL.setPortletMode(PortletMode.VIEW);
- } catch (Exception ex) {
- fail("MockPortletURL portlet mode set failed. Exception: " + ex);
- }
- assertEquals("PortletMode.VIEW not set ?", PortletMode.VIEW, mockPortletURL.getPortletMode());
- final String portletURLAsString = mockPortletURL.toString();
- assertNotNull("MockPortletURL toString() result null ?", portletURLAsString);
- assertTrue("MockPortletURL toString() result is empty ?", portletURLAsString.length() > 0);
- mockPortletURL.removePublicRenderParameter(TEST_PARAMETER); // Just confirm no exception
- }
-
- public void testMockRenderRequest() {
- final MockPortletContext mockPortletContext = new MockPortletContext();
- final MockPortalContext mockPortalContext = new MockPortalContext();
-
- // Call each constructor in sequence, do some basic checks
- MockRenderRequest mockRenderRequest = new MockRenderRequest();
- assertNull("MockRenderRequest ETag not null ?", mockRenderRequest.getETag());
- mockRenderRequest = new MockRenderRequest(PortletMode.HELP);
- assertEquals("MockRenderRequest portlet mode does not match constructor-set value ?", PortletMode.HELP, mockRenderRequest.getPortletMode());
- mockRenderRequest = new MockRenderRequest(PortletMode.HELP, WindowState.MAXIMIZED);
- assertEquals("MockRenderRequest portlet mode does not match constructor-set value ?", PortletMode.HELP, mockRenderRequest.getPortletMode());
- assertEquals("MockRenderRequest window state does not match constructor-set value ?", WindowState.MAXIMIZED, mockRenderRequest.getWindowState());
- new MockRenderRequest(mockPortletContext); // Only test is to confirm constructor completes without exception
- mockRenderRequest = new MockRenderRequest(mockPortalContext, mockPortletContext);
- assertEquals("Portal context does not match constructor-set value ?", mockPortalContext, mockRenderRequest.getPortalContext());
- }
-
- public void testMockRenderResponse() {
- final String TEST_TITLE = "TEST_TITLE";
-
- // Call each constructor in sequence, do some basic checks
- final MockPortalContext mockPortalContext = new MockPortalContext();
- final MockRenderRequest mockRenderRequest = new MockRenderRequest();
- MockRenderResponse mockRenderResponse = new MockRenderResponse();
- assertNull("MockRenderResponse title not null ?", mockRenderResponse.getTitle());
- mockRenderResponse = new MockRenderResponse(mockPortalContext); // Only test is to confirm constructor completes without exception
- assertEquals("Portal context does not match constructor-set value ?", mockPortalContext, mockRenderResponse.getPortalContext());
- mockRenderResponse = new MockRenderResponse(mockPortalContext, mockRenderRequest);
- assertEquals("Portal context does not match constructor-set value ?", mockPortalContext, mockRenderResponse.getPortalContext());
- mockRenderResponse.setTitle(TEST_TITLE);
- assertEquals("Title does not match set value ?", TEST_TITLE, mockRenderResponse.getTitle());
- final Collection portletModes = new ArrayList<>();
- portletModes.add(PortletMode.EDIT);
- portletModes.add(PortletMode.VIEW);
- mockRenderResponse.setNextPossiblePortletModes(portletModes);
- assertEquals("Next possible portlet modes not equal to set value ?", portletModes, mockRenderResponse.getNextPossiblePortletModes());
- }
-
- public void testMockResourceRequest() {
- final String TEST_RESOURCEID = "TEST_RESOURCEID";
- final String TEST_CACHEABILITY = "TEST_CACHEABILITY";
- final String TEST_PARAM = "TEST_PARAM";
- final String TEST_PARAM2 = "TEST_PARAM2";
- final String TEST_PARAM_VALUE = "NORMALVALUE";
- final String[] TEST_PARAM_ARRAYVALUE = { "ARRAYVALUE1", "ARRAYVALUE2" };
-
- // Call each constructor in sequence, do some basic checks
- MockResourceRequest mockResourceRequest = new MockResourceRequest();
- assertNull("Default resource id not null ?", mockResourceRequest.getResourceID());
- assertNull("Default cacheability not null ?", mockResourceRequest.getCacheability());
- assertNull("Default ETag not null ?", mockResourceRequest.getETag());
- mockResourceRequest = new MockResourceRequest(TEST_RESOURCEID);
- assertEquals("Resource id not set value ?", TEST_RESOURCEID, mockResourceRequest.getResourceID());
- final MockPortletContext mockPortletContext = new MockPortletContext();
- final MockPortalContext mockPortalContext = new MockPortalContext();
- final MockResourceURL mockResourceURL = new MockResourceURL();
- new MockResourceRequest(mockResourceURL); // Only test is to confirm constructor completes without exception
- new MockResourceRequest(mockPortletContext); // Only test is to confirm constructor completes without exception
- mockResourceRequest = new MockResourceRequest(mockPortalContext, mockPortletContext);
- assertEquals("Portal context does not match constructor-set value ?", mockPortalContext, mockResourceRequest.getPortalContext());
- mockResourceRequest.setCacheability(TEST_CACHEABILITY);
- assertEquals("Cacheability does not match set value ?", TEST_CACHEABILITY, mockResourceRequest.getCacheability());
- mockResourceRequest.addPrivateRenderParameter(TEST_PARAM, TEST_PARAM_VALUE);
- mockResourceRequest.addPrivateRenderParameter(TEST_PARAM2, TEST_PARAM_ARRAYVALUE);
- final Map privateRenderParameterMap = mockResourceRequest.getPrivateRenderParameterMap();
- assertNotNull("Parameter map is null ?", privateRenderParameterMap);
- assertTrue("Expected parameter not present ?", privateRenderParameterMap.containsKey(TEST_PARAM));
- assertTrue("Expected parameter not present ?", privateRenderParameterMap.containsKey(TEST_PARAM2));
- }
-
- public void testMockResourceResponse() {
- final int TEST_CONTENT_LENGTH = 4096;
-
- // Call each constructor in sequence, do some basic checks
- MockResourceResponse mockResourceRequest = new MockResourceResponse();
- assertEquals("MockResourceResponse initial content length not 0 ?", 0, mockResourceRequest.getContentLength());
- mockResourceRequest.setContentLength(TEST_CONTENT_LENGTH);
- assertEquals("Content length not equal to set value ?", TEST_CONTENT_LENGTH, mockResourceRequest.getContentLength());
- }
-
- public void testMockResourceURL() {
- final String TEST_RESOURCEID = "TEST_RESOURCEID";
- final String TEST_CACHEABILITY = "TEST_CACHEABILITY";
-
- // Call each constructor in sequence, do some basic checks
- MockResourceURL mockResourceURL = new MockResourceURL();
- assertNull("Default resource id not null ?", mockResourceURL.getResourceID());
- assertNull("Default cacheability not null ?", mockResourceURL.getCacheability());
- mockResourceURL.setResourceID(TEST_RESOURCEID);
- assertEquals("Resource id not set value ?", TEST_RESOURCEID, mockResourceURL.getResourceID());
- mockResourceURL.setCacheability(TEST_CACHEABILITY);
- assertEquals("Cacheability does not match set value ?", TEST_CACHEABILITY, mockResourceURL.getCacheability());
- final String resourceURLAsString = mockResourceURL.toString();
- assertNotNull("MockResourceURL toString() result null ?", resourceURLAsString);
- assertTrue("MockResourceURL toString() result is empty ?", resourceURLAsString.length() > 0);
- }
-
- public void testMockStateAwareResponse() {
- final String TEST_PORTLETNAME = "TestPortletName";
- final String TEST_DEFAULTNAMESPACE = "Test_Default_Namespace";
- final String TEST_QNAME3_STRING = "TestQname3String";
- final QName TEST_QNAME = new QName(TEST_PORTLETNAME);
- final QName TEST_QNAME2 = new QName(TEST_DEFAULTNAMESPACE);
- final String TEST_QNAME_VALUE = "Test_Qname_Value";
- final String TEST_QNAME2_VALUE = "Test_Qname2_Value";
- final String TEST_QNAME3_VALUE = "Test_Qname3_Value";
- final String TEST_PARAM = "TEST_PARAM";
- final String TEST_PARAM2 = "TEST_PARAM2";
- final String TEST_PARAM3 = "TEST_PARAM3";
- final String TEST_PARAM_VALUE = "NORMALVALUE";
- final String[] TEST_PARAM_ARRAYVALUE = { "ARRAYVALUE1", "ARRAYVALUE2" };
- final String[] TEST_PARAM_ARRAYVALUE2 = { "ARRAYVALUE3", "ARRAYVALUE4" };
-
- // Call each constructor in sequence, do some basic checks
- MockStateAwareResponse mockStateAwareResponse = new MockStateAwareResponse();
- try {
- mockStateAwareResponse.setPortletMode(PortletMode.VIEW);
- } catch (Exception ex) {
- fail("MockStateAwareResponse portlet mode set failed. Exception: " + ex);
- }
- assertEquals("PortletMode.VIEW not set ?", PortletMode.VIEW, mockStateAwareResponse.getPortletMode());
- try {
- mockStateAwareResponse.setPortletMode(PortletMode.EDIT);
- } catch (Exception ex) {
- fail("MockStateAwareResponse portlet mode set failed. Exception: " + ex);
- }
- assertEquals("Portlet mode does not match set value ?", PortletMode.EDIT, mockStateAwareResponse.getPortletMode());
- try {
- mockStateAwareResponse.setWindowState(WindowState.MAXIMIZED);
- } catch (Exception ex) {
- fail("MockStateAwareResponse portlet mode set failed. Exception: " + ex);
- }
- assertEquals("Window state does not match set value ?", WindowState.MAXIMIZED, mockStateAwareResponse.getWindowState());
- final MockPortalContext mockPortalContext = new MockPortalContext();
- mockStateAwareResponse = new MockStateAwareResponse(mockPortalContext);
- assertEquals("Portal context does not match constructor-set value ?", mockPortalContext, mockStateAwareResponse.getPortalContext());
-
- assertNull("Initial event already present ?", mockStateAwareResponse.getEvent(TEST_PORTLETNAME));
- assertNull("Initial event already present ?", mockStateAwareResponse.getEvent(TEST_QNAME));
- assertNull("Initial event already present ?", mockStateAwareResponse.getEvent(TEST_DEFAULTNAMESPACE));
- assertNull("Initial event already present ?", mockStateAwareResponse.getEvent(TEST_QNAME2));
- mockStateAwareResponse.setEvent(TEST_QNAME, TEST_QNAME_VALUE);
- mockStateAwareResponse.setEvent(TEST_QNAME2, TEST_QNAME2_VALUE);
- mockStateAwareResponse.setEvent(TEST_QNAME3_STRING, TEST_QNAME3_VALUE);
- assertEquals("First event QName not set value ?", TEST_QNAME_VALUE, mockStateAwareResponse.getEvent(TEST_QNAME));
- assertEquals("Second event QName not set value ?", TEST_QNAME2_VALUE, mockStateAwareResponse.getEvent(TEST_QNAME2));
- assertEquals("Third event QName not set value ?", TEST_QNAME3_VALUE, mockStateAwareResponse.getEvent(TEST_QNAME3_STRING));
- final Iterator eventQNames = mockStateAwareResponse.getEventNames();
- assertNotNull("Event names iterator null ?", eventQNames);
- while (eventQNames.hasNext()) {
- QName currentQName = eventQNames.next();
- assertNotNull("Iterator QName entry null ?", currentQName);
- assertTrue("Iterator QName name not one of two or three expected matches ?", currentQName.getLocalPart().equals(TEST_QNAME.getLocalPart()) ||
- currentQName.getLocalPart().equals(TEST_QNAME2.getLocalPart()) ||
- currentQName.getLocalPart().equals(TEST_QNAME3_STRING));
- }
-
- mockStateAwareResponse.setRenderParameter(TEST_PARAM, TEST_PARAM_VALUE);
- mockStateAwareResponse.setRenderParameter(TEST_PARAM2, TEST_PARAM_ARRAYVALUE);
- assertEquals("Portal test render parameter value not as expected ?", TEST_PARAM_VALUE, mockStateAwareResponse.getRenderParameter(TEST_PARAM));
- assertEquals("Portal test render parameter value not as expected ?", TEST_PARAM_ARRAYVALUE[0], mockStateAwareResponse.getRenderParameter(TEST_PARAM2));
- final Iterator renderParameterNames = mockStateAwareResponse.getRenderParameterNames();
- assertNotNull("Render parameter names iterator null ?", renderParameterNames);
- while (renderParameterNames.hasNext()) {
- String currentParameter = renderParameterNames.next();
- assertNotNull("Iterator parameter entry null ?", currentParameter);
- assertTrue("Iterator parameter name not one of two or three expected matches ?", currentParameter.equals(TEST_PARAM) ||
- currentParameter.equals(TEST_PARAM2) ||
- currentParameter.equals(TEST_PARAM3));
- }
- final String[] renderParameterValuesParam2 = mockStateAwareResponse.getRenderParameterValues(TEST_PARAM2);
- assertArrayEquals("Render parameter value2 not as expected ?", TEST_PARAM_ARRAYVALUE, renderParameterValuesParam2);
- final Map renderParametersMap = new LinkedHashMap<>();
- renderParametersMap.put(TEST_PARAM3, TEST_PARAM_ARRAYVALUE2);
- mockStateAwareResponse.setRenderParameters(renderParametersMap);
- assertNull("Portal test render parameter value not cleared as expected ?", mockStateAwareResponse.getRenderParameter(TEST_PARAM));
- assertNull("Portal test render parameter value not cleared as expected ?", mockStateAwareResponse.getRenderParameter(TEST_PARAM2));
- assertEquals("Portal test render parameter map value not as expected ?", renderParametersMap, mockStateAwareResponse.getRenderParameterMap());
- }
-
- public void testServletWrappingPortletContext() {
- final String TEST_ATTRIBUTE = "TEST_ATTRIBUTE";
- final String TEST_ATTRIBUTE_VALUE = "Attribute_Value_1";
- final String TEST_ATTRIBUTE2 = "TEST_ATTRIBUTE2";
- final String TEST_ATTRIBUTE_VALUE2 = "Attribute_Value_2";
- final String TEST_INITPARAM = "TEST_INITPARAM";
- final String TEST_INITPARAM2 = "TEST_INITPARAM2";
-
- // Call each constructor in sequence, do some basic checks
- final MockServletContext mockServletContext = new MockServletContext();
- final ServletWrappingPortletContext servletWrappingPortletContext = new ServletWrappingPortletContext(mockServletContext);
- assertNotNull("ServletWrappingPortletContext serverInfo null ?", servletWrappingPortletContext.getServerInfo());
- assertNull("ServletWrappingPortletContext PortletRequestDispatcher not null (illegal prefix) ?", servletWrappingPortletContext.getRequestDispatcher("IllegalPrefix"));
- assertNull("ServletWrappingPortletContext PortletRequestDispatcher not null ?", servletWrappingPortletContext.getRequestDispatcher("/"));
- assertNotNull("ServletWrappingPortletContext resource stream for / null ?", servletWrappingPortletContext.getResourceAsStream("/"));
- assertNull("ServletWrappingPortletContext resource stream for /ThisDoesNotExist not null ?", servletWrappingPortletContext.getResourceAsStream("/ThisDoesNotExist"));
- assertTrue("ServletWrappingPortletContext major version not >= 2 ?", servletWrappingPortletContext.getMajorVersion() >= 2);
- assertTrue("ServletWrappingPortletContext minor version not >= 0 ?", servletWrappingPortletContext.getMajorVersion() >= 0);
- try {
- assertNull("ServletWrappingPortletContext MIME type for / not null ?", servletWrappingPortletContext.getMimeType("/"));
- } catch (NoClassDefFoundError ncdfe) {
- // If compiled with Spring 4.x the MockServletContext has a dependency on javax.activation. This will cause a runtime failure running under JDK 9+ due to removal
- // of the javax.activation module. For that reason we will ignore the NoClassDefFoundError failure provided it is for the known FileTypeMap dependency.
- if (!ncdfe.getMessage().contains("javax/activation/FileTypeMap")) {
- fail("Unexpected exception: " + ncdfe);
- }
- }
- assertNotNull("ServletWrappingPortletContext real path for / null ?", servletWrappingPortletContext.getRealPath("/"));
- assertNull("ServletWrappingPortletContext real path for /ThisDoesNotExist not null ?", servletWrappingPortletContext.getRealPath("/ThisDoesNotExist"));
- assertNull("ServletWrappingPortletContext resource paths for / not null ?", servletWrappingPortletContext.getResourcePaths("/"));
- assertNull("ServletWrappingPortletContext resource paths for / null ?", servletWrappingPortletContext.getResourcePaths("/ThisDoesNotExist"));
- try {
- assertNotNull("ServletWrappingPortletContext resource URL for / null ?", servletWrappingPortletContext.getResource("/"));
- } catch (MalformedURLException mue) {
- fail("ServletWrappingPortletContext resource URL for / failed. Exception: " + mue);
- }
- try {
- assertNull("ServletWrappingPortletContext resource URL for /ThisDoesNotExist not null ?", servletWrappingPortletContext.getResource("/ThisDoesNotExist"));
- } catch (MalformedURLException mue) {
- fail("ServletWrappingPortletContext resource URL for /ThisDoesNotExist failed. Exception: " + mue);
- }
-
- assertNull(TEST_ATTRIBUTE + " present before set ?", servletWrappingPortletContext.getAttribute(TEST_ATTRIBUTE));
- assertNull(TEST_ATTRIBUTE2 + " present before set ?", servletWrappingPortletContext.getAttribute(TEST_ATTRIBUTE2));
- servletWrappingPortletContext.setAttribute(TEST_ATTRIBUTE, TEST_ATTRIBUTE_VALUE);
- servletWrappingPortletContext.setAttribute(TEST_ATTRIBUTE2, TEST_ATTRIBUTE_VALUE2);
- assertEquals("Retrieved atribute 1 does not match set value ?", TEST_ATTRIBUTE_VALUE, servletWrappingPortletContext.getAttribute(TEST_ATTRIBUTE));
- assertEquals("Retrieved atribute 2 does not match set value ?", TEST_ATTRIBUTE_VALUE2, servletWrappingPortletContext.getAttribute(TEST_ATTRIBUTE2));
- final Enumeration attributeNames = servletWrappingPortletContext.getAttributeNames();
- int attributeNameCount = 0;
- assertNotNull("Attribute names null after additions ?", attributeNames);
- assertTrue("Attribute names empty after additions ?", attributeNames.hasMoreElements());
- while (attributeNames.hasMoreElements()) {
- attributeNameCount++;
- String currentAttibuteName = attributeNames.nextElement();
- assertTrue("Attribute name not one of two or three expected matches ?", TEST_ATTRIBUTE.equals(currentAttibuteName) ||
- TEST_ATTRIBUTE2.equals(currentAttibuteName) ||
- WebUtils.TEMP_DIR_CONTEXT_ATTRIBUTE.equals(currentAttibuteName));
- }
- assertTrue("Atribute names size not 2 or 3 ?", attributeNameCount >= 2 && attributeNameCount <= 3);
-
- assertNull(TEST_INITPARAM + " present before set ?", servletWrappingPortletContext.getInitParameter(TEST_INITPARAM));
- assertNull(TEST_INITPARAM2 + " present before set ?", servletWrappingPortletContext.getInitParameter(TEST_INITPARAM));
- servletWrappingPortletContext.log("Test logging call");
- servletWrappingPortletContext.log("Test logging call", new Exception("Fake Exception"));
- assertEquals("Default portlet context name not as expected ?", "MockServletContext", servletWrappingPortletContext.getPortletContextName());
- assertFalse("Portlet runtime options not empty before set ?", servletWrappingPortletContext.getContainerRuntimeOptions().hasMoreElements());
- }
- // -------- Continue writing tests here --------------
-
- static class TestMockMultipartFile implements MultipartFile {
- private final String name;
- private final String originalFilename;
- private final String contentType;
- private final byte[] bytes;
-
- public TestMockMultipartFile(String name, String originalFilename, String contentType, byte[] bytes) {
- this.name = name;
- this.originalFilename = originalFilename;
- this.contentType = contentType;
- if (bytes != null) {
- this.bytes = Arrays.copyOf(bytes, bytes.length);
- } else {
- this.bytes = null;
- }
- }
-
- @Override
- public String getName() {
- return name;
- }
-
- @Override
- public String getOriginalFilename() {
- return this.originalFilename;
- }
-
- @Override
- public String getContentType() {
- return contentType;
- }
-
- @Override
- public boolean isEmpty() {
- return (bytes == null || bytes.length == 0);
- }
-
- @Override
- public long getSize() {
- return (bytes != null ? bytes.length : 0);
- }
-
- @Override
- public byte[] getBytes() throws IOException {
- return bytes;
- }
-
- @Override
- public InputStream getInputStream() throws IOException {
- return new ByteArrayInputStream(bytes);
- }
-
- @Override
- public void transferTo(File file) throws IOException, IllegalStateException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
- }
-
- static class TetMockResourceBundle extends ResourceBundle {
-
- @Override
- protected Object handleGetObject(String key) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public Enumeration getKeys() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
- }
-
- class TestMockPrincipal implements Principal {
-
- @Override
- public String getName() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public boolean implies(Subject subject) {
- return Principal.super.implies(subject);
- }
- }
-}
diff --git a/plugins/portlet-mocks/src/test/resources/applicationContext.xml b/plugins/portlet-mocks/src/test/resources/applicationContext.xml
deleted file mode 100644
index 106fd6cf4..000000000
--- a/plugins/portlet-mocks/src/test/resources/applicationContext.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/plugins/portlet-tiles/README.md b/plugins/portlet-tiles/README.md
deleted file mode 100644
index 5cff1590b..000000000
--- a/plugins/portlet-tiles/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# Struts 2 Portlet Tiles plugin
-This plugin is deprecated, and it will be removed soon, **please do not use it**!
diff --git a/plugins/portlet-tiles/pom.xml b/plugins/portlet-tiles/pom.xml
deleted file mode 100644
index c738a9b68..000000000
--- a/plugins/portlet-tiles/pom.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
- 4.0.0
-
- org.apache.struts
- struts2-plugins
- 6.4.0-SNAPSHOT
-
-
- struts2-portlet-tiles-plugin
- jar
- DEPRECATED: Struts 2 Portlet Tiles Plugin - since 6.0.0
-
-
-
- org.apache.struts
- struts2-tiles-plugin
-
-
- org.apache.struts
- struts2-portlet-plugin
-
-
- javax.portlet
- portlet-api
- provided
-
-
- org.easymock
- easymock
- test
-
-
-
- UTF-8
-
-
diff --git a/plugins/portlet-tiles/src/main/java/org/apache/struts2/views/tiles/PortletTilesResult.java b/plugins/portlet-tiles/src/main/java/org/apache/struts2/views/tiles/PortletTilesResult.java
deleted file mode 100644
index ef1f82f76..000000000
--- a/plugins/portlet-tiles/src/main/java/org/apache/struts2/views/tiles/PortletTilesResult.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.struts2.views.tiles;
-
-import com.opensymphony.xwork2.ActionInvocation;
-import org.apache.struts2.portlet.PortletConstants;
-import org.apache.struts2.portlet.context.PortletActionContext;
-import org.apache.struts2.result.ServletDispatcherResult;
-import org.apache.tiles.api.TilesContainer;
-import org.apache.tiles.api.TilesException;
-import org.apache.tiles.api.access.TilesAccess;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.portlet.RenderPortletRequest;
-
-import javax.portlet.ActionResponse;
-import javax.portlet.PortletContext;
-import javax.portlet.RenderRequest;
-import javax.portlet.RenderResponse;
-import java.util.Map;
-
-/**
- * Dedicated Tile result to be used in Portlet environment
- *
- * WW-2749
- */
-public class PortletTilesResult extends ServletDispatcherResult {
-
- public static final String TILES_ACTION_NAME = "tilesDirect";
-
- public PortletTilesResult() {
- super();
- }
-
- public PortletTilesResult(String location) {
- super(location);
- }
-
- public void doExecute(String location, ActionInvocation invocation) throws Exception {
- if (PortletActionContext.getPhase().isAction() || PortletActionContext.getPhase().isEvent()) {
- executeActionResult(location, invocation);
- } else {
- executeRenderResult(location);
- }
- }
-
- protected void executeRenderResult(String location) throws TilesException {
- setLocation(location);
-
- PortletContext portletContext = PortletActionContext.getPortletContext();
- RenderRequest request = PortletActionContext.getRenderRequest();
- RenderResponse response = PortletActionContext.getRenderResponse();
-
- TilesContainer container = getCurrentContainer(request, portletContext);
- ApplicationContext applicationContext = container.getApplicationContext();
- Request currentRequest = new RenderPortletRequest(applicationContext, portletContext, request, response);
-
- container.render(location, currentRequest);
- }
-
- protected void executeActionResult(String location, ActionInvocation invocation) {
- ActionResponse res = PortletActionContext.getActionResponse();
-
- res.setRenderParameter(PortletConstants.ACTION_PARAM, TILES_ACTION_NAME);
-
- Map sessionMap = invocation.getInvocationContext().getSession();
- sessionMap.put(PortletConstants.RENDER_DIRECT_LOCATION, location);
-
- res.setRenderParameter(PortletConstants.MODE_PARAM, PortletActionContext.getRequest().getPortletMode().toString());
- }
-
- protected TilesContainer getCurrentContainer(javax.portlet.PortletRequest request, PortletContext context) {
-
- TilesContainer container = (TilesContainer) request.getAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME);
-
- if (container == null) {
- container = getContainer(context);
- request.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
- }
-
- return container;
- }
-
- protected TilesContainer getContainer(PortletContext context) {
- return getContainer(context, TilesAccess.CONTAINER_ATTRIBUTE);
- }
-
- protected TilesContainer getContainer(PortletContext context, String key) {
- if (key == null) {
- key = TilesAccess.CONTAINER_ATTRIBUTE;
- }
- return (TilesContainer) context.getAttribute(key);
- }
-
-}
diff --git a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java b/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
deleted file mode 100644
index 6946776e4..000000000
--- a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
+++ /dev/null
@@ -1,344 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet;
-
-import org.apache.tiles.request.AbstractClientRequest;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.attribute.Addable;
-import org.apache.tiles.request.collection.HeaderValuesMap;
-import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
-import org.apache.tiles.request.collection.ScopeMap;
-import org.apache.tiles.request.portlet.delegate.RequestDelegate;
-import org.apache.tiles.request.portlet.delegate.ResponseDelegate;
-import org.apache.tiles.request.portlet.extractor.HeaderExtractor;
-import org.apache.tiles.request.portlet.extractor.RequestScopeExtractor;
-import org.apache.tiles.request.portlet.extractor.SessionScopeExtractor;
-
-import javax.portlet.PortletContext;
-import javax.portlet.PortletException;
-import javax.portlet.PortletRequestDispatcher;
-import javax.portlet.PortletResponse;
-import javax.portlet.PortletSession;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.Writer;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-/**
- * Portlet-based TilesApplicationContext implementation.
- */
-public class PortletRequest extends AbstractClientRequest {
-
- /**
- * The native available scopes.
- */
- private static final List SCOPES = Collections.unmodifiableList(Arrays.asList(REQUEST_SCOPE, "portletSession", "session", APPLICATION_SCOPE));
-
- /**
- *
The lazily instantiated Map of header name-value
- * combinations (immutable).
- */
- private Map header = null;
-
-
- /**
- *
The lazily instantiated Map of header name-value
- * combinations (write-only).
The lazily instantiated Map of portlet session scope
- * attributes.
- */
- private Map portletSessionScope = null;
-
-
- /**
- * Creates a new instance of PortletTilesRequestContext.
- *
- * @param applicationContext The Tiles application context.
- * @param context The portlet context to use.
- * @param request The request object to use.
- * @param response The response object to use.
- * @param requestDelegate The request delegate.
- * @param responseDelegate The response delegate.
- */
- public PortletRequest(ApplicationContext applicationContext,
- PortletContext context, javax.portlet.PortletRequest request,
- PortletResponse response, RequestDelegate requestDelegate, ResponseDelegate responseDelegate) {
- super(applicationContext);
-
- // Save the specified Portlet API object references
- this.context = context;
- this.request = request;
- this.response = response;
- this.requestDelegate = requestDelegate;
- this.responseDelegate = responseDelegate;
- }
-
- /**
- *
Return the {@link PortletRequest} for this context.
- *
- * @return The used portlet request.
- */
- public javax.portlet.PortletRequest getRequest() {
- return (this.request);
- }
-
- /**
- * Returns the portlet context.
- *
- * @return The portlet context.
- */
- public PortletContext getPortletContext() {
- return context;
- }
-
- /**
- * {@inheritDoc}
- */
- public Map getHeader() {
- if ((header == null) && (request != null)) {
- header = new ReadOnlyEnumerationMap<>(new HeaderExtractor(request, null));
- }
- return (header);
- }
-
- /**
- * {@inheritDoc}
- */
- public Addable getResponseHeaders() {
- if ((responseHeaders == null) && (request != null)) {
- responseHeaders = new HeaderExtractor(null, response);
- }
- return (responseHeaders);
- }
-
- /**
- * {@inheritDoc}
- */
- public Map getHeaderValues() {
- if ((headerValues == null) && (request != null)) {
- headerValues = new HeaderValuesMap(new HeaderExtractor(request, response));
- }
- return (headerValues);
- }
-
- /**
- * {@inheritDoc}
- */
- public Map getRequestScope() {
- if ((requestScope == null) && (request != null)) {
- requestScope = new ScopeMap(new RequestScopeExtractor(request));
- }
- return (requestScope);
- }
-
- /**
- * {@inheritDoc}
- */
- public Map getSessionScope() {
- if ((sessionScope == null) && (request != null)) {
- sessionScope = new ScopeMap(new SessionScopeExtractor(request,
- PortletSession.APPLICATION_SCOPE));
- }
- return (sessionScope);
- }
-
- /**
- * {@inheritDoc}
- */
- public Map getPortletSessionScope() {
- if ((portletSessionScope == null) && (request != null)) {
- portletSessionScope = new ScopeMap(new SessionScopeExtractor(
- request, PortletSession.APPLICATION_SCOPE));
- }
- return (portletSessionScope);
- }
-
- @Override
- public List getAvailableScopes() {
- return SCOPES;
- }
-
- /**
- * {@inheritDoc}
- */
- public Locale getRequestLocale() {
- return request.getLocale();
- }
-
- @Override
- public Map getParam() {
- return requestDelegate.getParam();
- }
-
- @Override
- public Map getParamValues() {
- return requestDelegate.getParamValues();
- }
-
- /**
- * {@inheritDoc}
- */
- public boolean isUserInRole(String role) {
- return request.isUserInRole(role);
- }
-
- @Override
- public OutputStream getOutputStream() throws IOException {
- return responseDelegate.getOutputStream();
- }
-
- @Override
- public PrintWriter getPrintWriter() throws IOException {
- return responseDelegate.getPrintWriter();
- }
-
- @Override
- public Writer getWriter() throws IOException {
- return responseDelegate.getWriter();
- }
-
- @Override
- public boolean isResponseCommitted() {
- return responseDelegate.isResponseCommitted();
- }
-
- @Override
- public void setContentType(String contentType) {
- responseDelegate.setContentType(contentType);
- }
-
- /**
- * {@inheritDoc}
- */
- public void doForward(String path) throws IOException {
- if (responseDelegate.isResponseCommitted()) {
- doInclude(path);
- return;
- }
-
- try {
- PortletRequestDispatcher rd = getPortletContext()
- .getRequestDispatcher(path);
-
- if (rd == null) {
- throw new IOException(
- "No portlet request dispatcher returned for path '"
- + path + "'");
- }
-
- rd.forward(request, response);
- } catch (PortletException e) {
- throw new IOException("PortletException while including path '"
- + path + "'.", e);
- }
- }
-
- /**
- * {@inheritDoc}
- */
- public void doInclude(String path) throws IOException {
- try {
- PortletRequestDispatcher rd = getPortletContext()
- .getRequestDispatcher(path);
-
- if (rd == null) {
- throw new IOException(
- "No portlet request dispatcher returned for path '"
- + path + "'");
- }
-
- rd.include(request, response);
- } catch (PortletException e) {
- throw new IOException("PortletException while including path '"
- + path + "'.", e);
- }
- }
-
- @Override
- public Map getContext(String scope) {
- if (REQUEST_SCOPE.equals(scope)) {
- return getRequestScope();
- } else if ("session".equals(scope)) {
- return getSessionScope();
- } else if ("portletSession".equals(scope)) {
- return getPortletSessionScope();
- } else if (APPLICATION_SCOPE.equals(scope)) {
- return getApplicationScope();
- }
- throw new IllegalArgumentException(scope + " does not exist. Call getAvailableScopes() first to check.");
- }
-}
diff --git a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/RenderPortletRequest.java b/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/RenderPortletRequest.java
deleted file mode 100644
index ea22c38a2..000000000
--- a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/RenderPortletRequest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.portlet.delegate.MimeResponseDelegate;
-import org.apache.tiles.request.portlet.delegate.PortletRequestDelegate;
-
-import javax.portlet.PortletContext;
-import javax.portlet.RenderRequest;
-import javax.portlet.RenderResponse;
-
-/**
- * Portlet request for a {@link RenderRequest}.
- */
-public class RenderPortletRequest extends PortletRequest {
-
- /**
- * Constructor.
- *
- * @param applicationContext The application context.
- * @param context The portlet context.
- * @param request The portlet request.
- * @param response The portlet response.
- */
- public RenderPortletRequest(ApplicationContext applicationContext, PortletContext context, RenderRequest request, RenderResponse response) {
- super(applicationContext, context, request, response, new PortletRequestDelegate(request), new MimeResponseDelegate(response));
- }
-}
diff --git a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/delegate/MimeResponseDelegate.java b/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/delegate/MimeResponseDelegate.java
deleted file mode 100644
index 347873cf1..000000000
--- a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/delegate/MimeResponseDelegate.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import javax.portlet.MimeResponse;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.Writer;
-
-/**
- * Response delegate in case of {@link MimeResponse}.
- */
-public class MimeResponseDelegate implements ResponseDelegate {
-
- /**
- * The response.
- */
- private final MimeResponse response;
-
- /**
- * Constructor.
- *
- * @param response The response.
- */
- public MimeResponseDelegate(MimeResponse response) {
- this.response = response;
- }
-
- /** {@inheritDoc} */
- public OutputStream getOutputStream() throws IOException {
- return response.getPortletOutputStream();
- }
-
- /** {@inheritDoc} */
- public PrintWriter getPrintWriter() throws IOException {
- return response.getWriter();
- }
-
- /** {@inheritDoc} */
- public Writer getWriter() throws IOException {
- return response.getWriter();
- }
-
- /** {@inheritDoc} */
- public boolean isResponseCommitted() {
- return response.isCommitted();
- }
-
- /** {@inheritDoc} */
- public void setContentType(String contentType) {
- response.setContentType(contentType);
- }
-}
diff --git a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/delegate/PortletRequestDelegate.java b/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/delegate/PortletRequestDelegate.java
deleted file mode 100644
index e5683d5a0..000000000
--- a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/delegate/PortletRequestDelegate.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
-import org.apache.tiles.request.portlet.extractor.ParameterExtractor;
-
-import javax.portlet.PortletRequest;
-import java.util.Map;
-
-/**
- * Request delegate in case of simple Portlet request.
- */
-public class PortletRequestDelegate implements RequestDelegate {
-
- /**
- * The request.
- */
- private final PortletRequest request;
-
- /**
- *
The lazily instantiated Map of request
- * parameter name-value.
- */
- private Map param = null;
-
- /**
- *
The lazily instantiated Map of request
- * parameter name-values.
- */
- private Map paramValues = null;
-
- /**
- * Constructor.
- *
- * @param request The request.
- */
- public PortletRequestDelegate(PortletRequest request) {
- this.request = request;
- }
-
- /**
- * {@inheritDoc}
- */
- public Map getParam() {
- if ((param == null) && (request != null)) {
- param = new ReadOnlyEnumerationMap<>(new ParameterExtractor(request));
- }
- return (param);
- }
-
- /**
- * {@inheritDoc}
- */
- public Map getParamValues() {
- if ((paramValues == null) && (request != null)) {
- paramValues = request.getParameterMap();
- }
- return (paramValues);
- }
-}
diff --git a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/delegate/RequestDelegate.java b/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/delegate/RequestDelegate.java
deleted file mode 100644
index 03846cc72..000000000
--- a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/delegate/RequestDelegate.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import java.util.Map;
-
-/**
- * Exposes the parameters of a portlet request, if available.
- */
-public interface RequestDelegate {
-
- /**
- * The parameters, as single values.
- *
- * @return The parameters.
- */
- Map getParam();
-
- /**
- * The parameters, with values as array of strings.
- *
- * @return The parameters.
- */
- Map getParamValues();
-}
diff --git a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/delegate/ResponseDelegate.java b/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/delegate/ResponseDelegate.java
deleted file mode 100644
index 92f46cef6..000000000
--- a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/delegate/ResponseDelegate.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.Writer;
-
-/**
- * Exposes features of a response, if they are available.
- */
-public interface ResponseDelegate {
-
- /**
- * Returns the output stream.
- *
- * @return The output stream.
- * @throws IOException If the underlying response causes a problem.
- */
- OutputStream getOutputStream() throws IOException;
-
- /**
- * Returns the print writer.
- *
- * @return The print writer.
- * @throws IOException If the underlying response causes a problem.
- */
- PrintWriter getPrintWriter() throws IOException;
-
- /**
- * Returns the writer.
- *
- * @return The writer.
- * @throws IOException If the underlying response causes a problem.
- */
- Writer getWriter() throws IOException;
-
- /**
- * Sets the content type of the response.
- *
- * @param contentType The content type.
- */
- void setContentType(String contentType);
-
- /**
- * Checks if the response is committed.
- *
- * @return true if the response is committed.
- */
- boolean isResponseCommitted();
-}
diff --git a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/delegate/package-info.java b/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/delegate/package-info.java
deleted file mode 100644
index 5080dc3e0..000000000
--- a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/delegate/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Delegations to map all the different types of request and responses.
- */
-package org.apache.tiles.request.portlet.delegate;
diff --git a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/ApplicationScopeExtractor.java b/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/ApplicationScopeExtractor.java
deleted file mode 100644
index 590046cff..000000000
--- a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/ApplicationScopeExtractor.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import org.apache.tiles.request.attribute.AttributeExtractor;
-
-import javax.portlet.PortletContext;
-import java.util.Enumeration;
-
-/**
- * Extracts attributes from portlet application scope.
- */
-public class ApplicationScopeExtractor implements AttributeExtractor {
-
- /**
- * The portlet context.
- */
- private final PortletContext context;
-
- /**
- * Constructor.
- *
- * @param context The portlet context.
- */
- public ApplicationScopeExtractor(PortletContext context) {
- this.context = context;
- }
-
- @Override
- public void setValue(String name, Object value) {
- context.setAttribute(name, value);
- }
-
- @Override
- public void removeValue(String name) {
- context.removeAttribute(name);
- }
-
- @Override
- public Enumeration getKeys() {
- return context.getAttributeNames();
- }
-
- @Override
- public Object getValue(String key) {
- return context.getAttribute(key);
- }
-}
diff --git a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/HeaderExtractor.java b/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/HeaderExtractor.java
deleted file mode 100644
index 0c94fa90f..000000000
--- a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/HeaderExtractor.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import org.apache.tiles.request.attribute.EnumeratedValuesExtractor;
-
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletResponse;
-import java.util.Enumeration;
-
-/**
- * Extracts and puts headers in portlet requests and responses.
- */
-public class HeaderExtractor implements EnumeratedValuesExtractor {
-
- /**
- * The request.
- */
- private final PortletRequest request;
-
- /**
- * The response.
- */
- private final PortletResponse response;
-
- /**
- * Constructor.
- *
- * @param request The request.
- * @param response The response.
- */
- public HeaderExtractor(PortletRequest request, PortletResponse response) {
- this.request = request;
- this.response = response;
- }
-
- @Override
- public Enumeration getKeys() {
- return request.getPropertyNames();
- }
-
- @Override
- public String getValue(String key) {
- return request.getProperty(key);
- }
-
- @Override
- public Enumeration getValues(String key) {
- return request.getProperties(key);
- }
-
- @Override
- public void setValue(String key, String value) {
- response.setProperty(key, value);
- }
-}
diff --git a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/InitParameterExtractor.java b/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/InitParameterExtractor.java
deleted file mode 100644
index f27fdf4f1..000000000
--- a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/InitParameterExtractor.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import org.apache.tiles.request.attribute.HasKeys;
-
-import javax.portlet.PortletContext;
-import java.util.Enumeration;
-
-/**
- * Extracts init parameters from a portlet context.
- */
-public class InitParameterExtractor implements HasKeys {
-
- /**
- * The portlet context.
- */
- private final PortletContext context;
-
- /**
- * Constructor.
- *
- * @param context The portlet context.
- */
- public InitParameterExtractor(PortletContext context) {
- this.context = context;
- }
-
- @Override
- public Enumeration getKeys() {
- return context.getInitParameterNames();
- }
-
- @Override
- public String getValue(String key) {
- return context.getInitParameter(key);
- }
-
-}
diff --git a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/ParameterExtractor.java b/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/ParameterExtractor.java
deleted file mode 100644
index e412a84c6..000000000
--- a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/ParameterExtractor.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import org.apache.tiles.request.attribute.HasKeys;
-
-import javax.portlet.PortletRequest;
-import java.util.Enumeration;
-
-/**
- * Extracts parameters from a portlet request.
- */
-public class ParameterExtractor implements HasKeys {
-
- /**
- * The portlet request.
- */
- private final PortletRequest request;
-
- /**
- * Constructor.
- *
- * @param request The portlet request.
- */
- public ParameterExtractor(PortletRequest request) {
- this.request = request;
- }
-
- @Override
- public Enumeration getKeys() {
- return request.getParameterNames();
- }
-
- @Override
- public String getValue(String key) {
- return request.getParameter(key);
- }
-}
diff --git a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/RequestScopeExtractor.java b/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/RequestScopeExtractor.java
deleted file mode 100644
index edc72bc9e..000000000
--- a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/RequestScopeExtractor.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import org.apache.tiles.request.attribute.AttributeExtractor;
-
-import javax.portlet.PortletRequest;
-import java.util.Enumeration;
-
-/**
- * Extracts attributes from request scope of a portlet request.
- */
-public class RequestScopeExtractor implements AttributeExtractor {
-
- /**
- * The portlet request.
- */
- private final PortletRequest request;
-
- /**
- * Constructor.
- *
- * @param request The portlet request.
- */
- public RequestScopeExtractor(PortletRequest request) {
- this.request = request;
- }
-
- @Override
- public void setValue(String name, Object value) {
- request.setAttribute(name, value);
- }
-
- @Override
- public void removeValue(String name) {
- request.removeAttribute(name);
- }
-
- @Override
- public Enumeration getKeys() {
- return request.getAttributeNames();
- }
-
- @Override
- public Object getValue(String key) {
- return request.getAttribute(key);
- }
-}
diff --git a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/SessionScopeExtractor.java b/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/SessionScopeExtractor.java
deleted file mode 100644
index 9801454fa..000000000
--- a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/SessionScopeExtractor.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import org.apache.tiles.request.attribute.AttributeExtractor;
-
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletSession;
-import java.util.Enumeration;
-
-/**
- * Extracts attributes from the session scope of a portlet request.
- */
-public class SessionScopeExtractor implements AttributeExtractor {
-
- /**
- * The portlet request.
- */
- private final PortletRequest request;
-
- /**
- * The subscope (application or portlet).
- */
- private final int scope;
-
- /**
- * Constructor.
- *
- * @param request The request.
- * @param scope The subscope (application or portlet).
- */
- public SessionScopeExtractor(PortletRequest request, int scope) {
- this.request = request;
- if (scope != PortletSession.APPLICATION_SCOPE && scope != PortletSession.PORTLET_SCOPE) {
- throw new IllegalArgumentException("The scope must be either APPLICATION_SCOPE or PORTLET_SCOPE");
- }
- this.scope = scope;
- }
-
- @Override
- public void setValue(String name, Object value) {
- request.getPortletSession().setAttribute(name, value, scope);
- }
-
- @Override
- public void removeValue(String name) {
- PortletSession session = request.getPortletSession(false);
- if (session != null) {
- session.removeAttribute(name, scope);
- }
- }
-
- @Override
- public Enumeration getKeys() {
- PortletSession session = request.getPortletSession(false);
- if (session != null) {
- return session.getAttributeNames(scope);
- }
- return null;
- }
-
- @Override
- public Object getValue(String key) {
- PortletSession session = request.getPortletSession(false);
- if (session != null) {
- return session.getAttribute(key, scope);
- }
- return null;
- }
-}
diff --git a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/StateAwareParameterExtractor.java b/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/StateAwareParameterExtractor.java
deleted file mode 100644
index a14f53a7b..000000000
--- a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/StateAwareParameterExtractor.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import org.apache.tiles.request.attribute.HasAddableKeys;
-
-import javax.portlet.PortletRequest;
-import javax.portlet.StateAwareResponse;
-
-/**
- * Extracts parameters from a request and allows putting render parameters in a state aware response.
- */
-public class StateAwareParameterExtractor extends ParameterExtractor implements HasAddableKeys {
-
- /**
- * The portlet response.
- */
- private final StateAwareResponse response;
-
- /**
- * Constructor.
- *
- * @param request The portlet request.
- * @param response The portlet response.
- */
- public StateAwareParameterExtractor(PortletRequest request, StateAwareResponse response) {
- super(request);
- this.response = response;
- }
-
- @Override
- public void setValue(String key, String value) {
- response.setRenderParameter(key, value);
- }
-}
diff --git a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/package-info.java b/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/package-info.java
deleted file mode 100644
index a37ccbb9e..000000000
--- a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/extractor/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Extractors to get scopes from Portlet requests.
- */
-package org.apache.tiles.request.portlet.extractor;
diff --git a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/package-info.java b/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/package-info.java
deleted file mode 100644
index b9eb0d168..000000000
--- a/plugins/portlet-tiles/src/main/java/org/apache/tiles/request/portlet/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Support of Tiles requests to portlets.
- */
-package org.apache.tiles.request.portlet;
diff --git a/plugins/portlet-tiles/src/main/resources/LICENSE.txt b/plugins/portlet-tiles/src/main/resources/LICENSE.txt
deleted file mode 100644
index c6055ec8f..000000000
--- a/plugins/portlet-tiles/src/main/resources/LICENSE.txt
+++ /dev/null
@@ -1,174 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
diff --git a/plugins/portlet-tiles/src/main/resources/NOTICE.txt b/plugins/portlet-tiles/src/main/resources/NOTICE.txt
deleted file mode 100644
index 12fa3b83d..000000000
--- a/plugins/portlet-tiles/src/main/resources/NOTICE.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache Struts
-Copyright 2000-2011 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file
diff --git a/plugins/portlet-tiles/src/main/resources/struts-plugin.xml b/plugins/portlet-tiles/src/main/resources/struts-plugin.xml
deleted file mode 100644
index 9aa82ca5d..000000000
--- a/plugins/portlet-tiles/src/main/resources/struts-plugin.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- ${location}
-
-
-
-
-
diff --git a/plugins/portlet-tiles/src/site/site.xml b/plugins/portlet-tiles/src/site/site.xml
deleted file mode 100644
index 54fdcf4f4..000000000
--- a/plugins/portlet-tiles/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
- org.apache.maven.skins
- maven-fluido-skin
- ${fluido-skin.version}
-
-
- Apache Software Foundation
- http://www.apache.org/images/asf-logo.gif
- http://www.apache.org/
-
-
- Apache Struts
- http://struts.apache.org/img/struts-logo.svg
- http://struts.apache.org/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java b/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java
deleted file mode 100644
index 130c8f5f6..000000000
--- a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java
+++ /dev/null
@@ -1,424 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.collection.HeaderValuesMap;
-import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
-import org.apache.tiles.request.collection.ScopeMap;
-import org.apache.tiles.request.portlet.delegate.RequestDelegate;
-import org.apache.tiles.request.portlet.delegate.ResponseDelegate;
-import org.apache.tiles.request.portlet.extractor.HeaderExtractor;
-import org.junit.Before;
-import org.junit.Test;
-
-import javax.portlet.PortletContext;
-import javax.portlet.PortletException;
-import javax.portlet.PortletRequestDispatcher;
-import javax.portlet.PortletResponse;
-import jakarta.servlet.ServletOutputStream;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Locale;
-import java.util.Map;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.expectLastCall;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-/**
- * Tests {@link PortletRequest}.
- */
-public class PortletRequestTest {
-
- /**
- * The application context.
- */
- private ApplicationContext applicationContext;
-
- /**
- * The portlet context.
- */
- private PortletContext portletContext;
-
- /**
- * The request.
- */
- private javax.portlet.PortletRequest request;
-
- /**
- * The response.
- */
- private PortletResponse response;
-
- /**
- * The request to test.
- */
- private PortletRequest req;
-
- /**
- * The request delegate.
- */
- private RequestDelegate requestDelegate;
-
- /**
- * The response delegate.
- */
- private ResponseDelegate responseDelegate;
-
- /**
- * Sets up the test.
- */
- @Before
- public void setUp() {
- applicationContext = createMock(ApplicationContext.class);
- portletContext = createMock(PortletContext.class);
- request = createMock(javax.portlet.PortletRequest.class);
- response = createMock(PortletResponse.class);
- requestDelegate = createMock(RequestDelegate.class);
- responseDelegate = createMock(ResponseDelegate.class);
- req = new PortletRequest(applicationContext, portletContext, request,
- response, requestDelegate, responseDelegate);
- }
-
- /**
- * Test method for {@link PortletRequest#doForward(String)}.
- *
- * @throws IOException If something goes wrong.
- * @throws PortletException If something goes wrong.
- */
- @Test
- public void testDoForward() throws PortletException, IOException {
- PortletRequestDispatcher rd = createMock(PortletRequestDispatcher.class);
-
- expect(responseDelegate.isResponseCommitted()).andReturn(false);
- expect(portletContext.getRequestDispatcher("/my/path")).andReturn(rd);
- rd.forward(request, response);
-
- replay(applicationContext, portletContext, request, response, rd);
- req.doForward("/my/path");
- verify(applicationContext, portletContext, request, response, rd);
- }
-
- /**
- * Test method for {@link PortletRequest#doForward(String)}.
- *
- * @throws IOException If something goes wrong.
- */
- @Test(expected = IOException.class)
- public void testDoForwardNoDispatcher() throws IOException {
- expect(responseDelegate.isResponseCommitted()).andReturn(false);
- expect(portletContext.getRequestDispatcher("/my/path")).andReturn(null);
-
- replay(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
- try {
- req.doForward("/my/path");
- } finally {
- verify(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
- }
- }
-
- /**
- * Test method for {@link PortletRequest#doForward(String)}.
- *
- * @throws IOException If something goes wrong.
- * @throws PortletException If something goes wrong.
- */
- @Test(expected = IOException.class)
- public void testDoForwardPortletException() throws PortletException, IOException {
- PortletRequestDispatcher rd = createMock(PortletRequestDispatcher.class);
-
- expect(responseDelegate.isResponseCommitted()).andReturn(false);
- expect(portletContext.getRequestDispatcher("/my/path")).andReturn(rd);
- rd.forward(request, response);
- expectLastCall().andThrow(new PortletException());
-
- replay(applicationContext, request, response, rd, portletContext, requestDelegate, responseDelegate);
- try {
- req.doForward("/my/path");
- } finally {
- verify(applicationContext, request, response, rd, portletContext, requestDelegate, responseDelegate);
- }
- }
-
- /**
- * Test method for {@link PortletRequest#doForward(String)}.
- *
- * @throws IOException If something goes wrong.
- * @throws PortletException If something goes wrong.
- */
- @Test
- public void testDoForwardInclude() throws PortletException, IOException {
- PortletRequestDispatcher rd = createMock(PortletRequestDispatcher.class);
-
- expect(responseDelegate.isResponseCommitted()).andReturn(true);
- expect(portletContext.getRequestDispatcher("/my/path")).andReturn(rd);
- rd.include(request, response);
-
- replay(applicationContext, request, response, rd, portletContext, requestDelegate, responseDelegate);
- req.doForward("/my/path");
- verify(applicationContext, request, response, rd, portletContext, requestDelegate, responseDelegate);
- }
-
- /**
- * Test method for {@link PortletRequest#doInclude(String)}.
- *
- * @throws IOException If something goes wrong.
- * @throws PortletException If something goes wrong.
- */
- @Test
- public void testDoInclude() throws IOException, PortletException {
- PortletRequestDispatcher rd = createMock(PortletRequestDispatcher.class);
-
- expect(portletContext.getRequestDispatcher("/my/path")).andReturn(rd);
- rd.include(request, response);
-
- replay(applicationContext, request, response, rd, portletContext, requestDelegate, responseDelegate);
- req.doInclude("/my/path");
- verify(applicationContext, request, response, rd, portletContext, requestDelegate, responseDelegate);
- }
-
- /**
- * Test method for {@link PortletRequest#doInclude(String)}.
- *
- * @throws IOException If something goes wrong.
- */
- @Test(expected = IOException.class)
- public void testDoIncludeNoDispatcher() throws IOException {
- expect(portletContext.getRequestDispatcher("/my/path")).andReturn(null);
-
- replay(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
- try {
- req.doInclude("/my/path");
- } finally {
- verify(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
- }
- }
-
- /**
- * Test method for {@link PortletRequest#doInclude(String)}.
- *
- * @throws IOException If something goes wrong.
- * @throws PortletException If something goes wrong.
- */
- @Test(expected = IOException.class)
- public void testDoIncludePortletException() throws IOException, PortletException {
- PortletRequestDispatcher rd = createMock(PortletRequestDispatcher.class);
-
- expect(portletContext.getRequestDispatcher("/my/path")).andReturn(rd);
- rd.include(request, response);
- expectLastCall().andThrow(new PortletException());
-
- replay(applicationContext, request, response, rd, portletContext, requestDelegate, responseDelegate);
- try {
- req.doInclude("/my/path");
- } finally {
- verify(applicationContext, request, response, rd, portletContext, requestDelegate, responseDelegate);
- }
- }
-
- /**
- * Test method for {@link PortletRequest#getHeader()}.
- */
- @Test
- public void testGetHeader() {
- assertTrue(req.getHeader() instanceof ReadOnlyEnumerationMap);
- }
-
- /**
- * Test method for {@link PortletRequest#getResponseHeaders()}.
- */
- @Test
- public void testGetResponseHeaders() {
- assertTrue(req.getResponseHeaders() instanceof HeaderExtractor);
- }
-
- /**
- * Test method for {@link PortletRequest#getHeaderValues()}.
- */
- @Test
- public void testGetHeaderValues() {
- assertTrue(req.getHeaderValues() instanceof HeaderValuesMap);
- }
-
- /**
- * Test method for {@link PortletRequest#getParam()}.
- */
- @Test
- public void testGetParam() {
- Map map = createMock(Map.class);
-
- expect(requestDelegate.getParam()).andReturn(map);
-
- replay(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
- assertEquals(map, req.getParam());
- verify(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
- }
-
- /**
- * Test method for {@link PortletRequest#getParamValues()}.
- */
- @Test
- public void testGetParamValues() {
- Map paramMap = createMock(Map.class);
-
- expect(requestDelegate.getParamValues()).andReturn(paramMap);
-
- replay(applicationContext, request, response, paramMap, portletContext, requestDelegate, responseDelegate);
- assertEquals(paramMap, req.getParamValues());
- verify(applicationContext, request, response, paramMap, portletContext, requestDelegate, responseDelegate);
- }
-
- /**
- * Test method for {@link PortletRequest#getRequestScope()}.
- */
- @Test
- public void testGetRequestScope() {
- assertTrue(req.getRequestScope() instanceof ScopeMap);
- }
-
- /**
- * Test method for {@link PortletRequest#getSessionScope()}.
- */
- @Test
- public void testGetSessionScope() {
- assertTrue(req.getSessionScope() instanceof ScopeMap);
- }
-
- /**
- * Test method for {@link PortletRequest#getPortletSessionScope()}.
- */
- @Test
- public void testGetPortletSessionScope() {
- assertTrue(req.getPortletSessionScope() instanceof ScopeMap);
- }
-
- /**
- * Test method for {@link PortletRequest#getOutputStream()}.
- *
- * @throws IOException If something goes wrong.
- */
- @Test
- public void testGetOutputStream() throws IOException {
- ServletOutputStream os = createMock(ServletOutputStream.class);
-
- expect(responseDelegate.getOutputStream()).andReturn(os);
-
- replay(applicationContext, request, response, os, portletContext, requestDelegate, responseDelegate);
- assertEquals(req.getOutputStream(), os);
- verify(applicationContext, request, response, os, portletContext, requestDelegate, responseDelegate);
- }
-
- /**
- * Test method for {@link PortletRequest#getWriter()}.
- *
- * @throws IOException If something goes wrong.
- */
- @Test
- public void testGetWriter() throws IOException {
- PrintWriter os = createMock(PrintWriter.class);
-
- expect(responseDelegate.getWriter()).andReturn(os);
-
- replay(applicationContext, request, response, os, portletContext, requestDelegate, responseDelegate);
- assertEquals(req.getWriter(), os);
- verify(applicationContext, request, response, os, portletContext, requestDelegate, responseDelegate);
- }
-
- /**
- * Test method for {@link PortletRequest#getPrintWriter()}.
- *
- * @throws IOException If something goes wrong.
- */
- @Test
- public void testGetPrintWriter() throws IOException {
- PrintWriter os = createMock(PrintWriter.class);
-
- expect(responseDelegate.getPrintWriter()).andReturn(os);
-
- replay(applicationContext, request, response, os, portletContext, requestDelegate, responseDelegate);
- assertEquals(req.getPrintWriter(), os);
- verify(applicationContext, request, response, os, portletContext, requestDelegate, responseDelegate);
- }
-
- /**
- * Test method for {@link PortletRequest#isResponseCommitted()}.
- */
- @Test
- public void testIsResponseCommitted() {
- expect(responseDelegate.isResponseCommitted()).andReturn(true);
-
- replay(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
- assertTrue(req.isResponseCommitted());
- verify(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
- }
-
- /**
- * Test method for {@link PortletRequest#setContentType(String)}.
- */
- @Test
- public void testSetContentType() {
- responseDelegate.setContentType("text/html");
-
- replay(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
- req.setContentType("text/html");
- verify(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
- }
-
- /**
- * Test method for {@link PortletRequest#getRequestLocale()}.
- */
- @Test
- public void testGetRequestLocale() {
- Locale locale = Locale.ITALY;
-
- expect(request.getLocale()).andReturn(locale);
-
- replay(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
- assertEquals(locale, req.getRequestLocale());
- verify(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
- }
-
- /**
- * Test method for {@link PortletRequest#getRequest()}.
- */
- @Test
- public void testGetRequest() {
- replay(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
- assertEquals(request, req.getRequest());
- verify(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
- }
-
- /**
- * Test method for {@link PortletRequest#isUserInRole(String)}.
- */
- @Test
- public void testIsUserInRole() {
- expect(request.isUserInRole("myrole")).andReturn(true);
-
- replay(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
- assertTrue(req.isUserInRole("myrole"));
- verify(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
- }
-
-}
diff --git a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/RenderPortletRequestTest.java b/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/RenderPortletRequestTest.java
deleted file mode 100644
index 5bba700fb..000000000
--- a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/RenderPortletRequestTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.portlet.delegate.MimeResponseDelegate;
-import org.apache.tiles.request.portlet.delegate.PortletRequestDelegate;
-import org.junit.Test;
-
-import javax.portlet.PortletContext;
-import javax.portlet.RenderRequest;
-import javax.portlet.RenderResponse;
-import java.lang.reflect.Field;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.junit.Assert.assertTrue;
-
-/**
- * Tests {@link RenderPortletRequest}.
- */
-public class RenderPortletRequestTest {
-
- /**
- * Test method for
- * {@link RenderPortletRequest#RenderPortletRequest(ApplicationContext, PortletContext,
- * RenderRequest, RenderResponse)}.
- *
- * @throws NoSuchFieldException If something goes wrong.
- * @throws SecurityException If something goes wrong.
- * @throws IllegalAccessException If something goes wrong.
- * @throws IllegalArgumentException If something goes wrong.
- */
- @Test
- public void testRenderPortletRequest() throws NoSuchFieldException, IllegalAccessException {
- ApplicationContext applicationContext = createMock(ApplicationContext.class);
- PortletContext portletContext = createMock(PortletContext.class);
- RenderRequest request = createMock(RenderRequest.class);
- RenderResponse response = createMock(RenderResponse.class);
-
- replay(applicationContext, portletContext, request, response);
- RenderPortletRequest req = new RenderPortletRequest(applicationContext,
- portletContext, request, response);
- Class extends RenderPortletRequest> clazz = req.getClass();
- Field field = clazz.getSuperclass().getDeclaredField("requestDelegate");
- assertTrue(field.get(req) instanceof PortletRequestDelegate);
- field = clazz.getSuperclass().getDeclaredField("responseDelegate");
- assertTrue(field.get(req) instanceof MimeResponseDelegate);
- verify(applicationContext, portletContext, request, response);
- }
-
-}
diff --git a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/delegate/MimeResponseDelegateTest.java b/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/delegate/MimeResponseDelegateTest.java
deleted file mode 100644
index 25d653456..000000000
--- a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/delegate/MimeResponseDelegateTest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import javax.portlet.MimeResponse;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-/**
- * Tests {@link MimeResponseDelegate}.
- */
-public class MimeResponseDelegateTest {
-
- /**
- * The response.
- */
- private MimeResponse response;
-
- /**
- * The delegate to test.
- */
- private MimeResponseDelegate delegate;
-
- /**
- * Sets up the test.
- */
- @Before
- public void setUp() {
- response = createMock(MimeResponse.class);
- delegate = new MimeResponseDelegate(response);
- }
-
- /**
- * Test method for {@link MimeResponseDelegate#getOutputStream()}.
- *
- * @throws IOException If something goes wrong.
- */
- @Test
- public void testGetOutputStream() throws IOException {
- OutputStream os = createMock(OutputStream.class);
-
- expect(response.getPortletOutputStream()).andReturn(os);
-
- replay(response, os);
- assertEquals(os, delegate.getOutputStream());
- verify(response, os);
- }
-
- /**
- * Test method for {@link MimeResponseDelegate#getPrintWriter()}.
- *
- * @throws IOException If something goes wrong.
- */
- @Test
- public void testGetPrintWriter() throws IOException {
- PrintWriter os = createMock(PrintWriter.class);
-
- expect(response.getWriter()).andReturn(os);
-
- replay(response, os);
- assertEquals(os, delegate.getPrintWriter());
- verify(response, os);
- }
-
- /**
- * Test method for {@link MimeResponseDelegate#getWriter()}.
- *
- * @throws IOException If something goes wrong.
- */
- @Test
- public void testGetWriter() throws IOException {
- PrintWriter os = createMock(PrintWriter.class);
-
- expect(response.getWriter()).andReturn(os);
-
- replay(response, os);
- assertEquals(os, delegate.getWriter());
- verify(response, os);
- }
-
- /**
- * Test method for {@link MimeResponseDelegate#isResponseCommitted()}.
- */
- @Test
- public void testIsResponseCommitted() {
- expect(response.isCommitted()).andReturn(true);
-
- replay(response);
- assertTrue(delegate.isResponseCommitted());
- verify(response);
- }
-
- /**
- * Test method for {@link MimeResponseDelegate#setContentType(String)}.
- */
- @Test
- public void testSetContentType() {
- response.setContentType("text/html");
-
- replay(response);
- delegate.setContentType("text/html");
- verify(response);
- }
-
-}
diff --git a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/delegate/PortletRequestDelegateTest.java b/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/delegate/PortletRequestDelegateTest.java
deleted file mode 100644
index ce6d4e849..000000000
--- a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/delegate/PortletRequestDelegateTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
-import org.junit.Before;
-import org.junit.Test;
-
-import javax.portlet.PortletRequest;
-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;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-/**
- * Tests {@link PortletRequestDelegate}.
- */
-public class PortletRequestDelegateTest {
-
- /**
- * The request.
- */
- private PortletRequest request;
-
- /**
- * The delegate to test.
- */
- private PortletRequestDelegate delegate;
-
- /**
- * Sets up the test.
- */
- @Before
- public void setUp() {
- request = createMock(PortletRequest.class);
- delegate = new PortletRequestDelegate(request);
- }
-
- /**
- * Test method for {@link PortletRequestDelegate#getParam()}.
- */
- @Test
- public void testGetParam() {
- replay(request);
- assertTrue(delegate.getParam() instanceof ReadOnlyEnumerationMap);
- verify(request);
- }
-
- /**
- * Test method for {@link PortletRequestDelegate#getParamValues()}.
- */
- @Test
- public void testGetParamValues() {
- Map params = createMock(Map.class);
-
- expect(request.getParameterMap()).andReturn(params);
-
- replay(request, params);
- assertEquals(params, delegate.getParamValues());
- verify(request, params);
- }
-
-}
diff --git a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/ApplicationScopeExtractorTest.java b/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/ApplicationScopeExtractorTest.java
deleted file mode 100644
index 5ede84f69..000000000
--- a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/ApplicationScopeExtractorTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import org.apache.tiles.request.portlet.extractor.ApplicationScopeExtractor;
-import org.junit.Before;
-import org.junit.Test;
-
-import javax.portlet.PortletContext;
-import java.util.Enumeration;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.assertEquals;
-
-/**
- * Tests {@link ApplicationScopeExtractor}.
- */
-public class ApplicationScopeExtractorTest {
-
- /**
- * The portlet context.
- */
- private PortletContext context;
-
- /**
- * The extractot to test.
- */
- private ApplicationScopeExtractor extractor;
-
- /**
- * Sets up the test.
- */
- @Before
- public void setUp() {
- context = createMock(PortletContext.class);
- extractor = new ApplicationScopeExtractor(context);
- }
-
- /**
- * Test method for {@link ApplicationScopeExtractor#setValue(String, Object)}.
- */
- @Test
- public void testSetValue() {
- context.setAttribute("attribute", "value");
-
- replay(context);
- extractor.setValue("attribute", "value");
- verify(context);
- }
-
- /**
- * Test method for {@link ApplicationScopeExtractor#removeValue(String)}.
- */
- @Test
- public void testRemoveValue() {
- context.removeAttribute("attribute");
-
- replay(context);
- extractor.removeValue("attribute");
- verify(context);
- }
-
- /**
- * Test method for {@link ApplicationScopeExtractor#getKeys()}.
- */
- @SuppressWarnings("unchecked")
- @Test
- public void testGetKeys() {
- Enumeration keys = createMock(Enumeration.class);
- expect(context.getAttributeNames()).andReturn(keys);
-
- replay(context, keys);
- assertEquals(keys, extractor.getKeys());
- verify(context, keys);
- }
-
- /**
- * Test method for {@link ApplicationScopeExtractor#getValue(String)}.
- */
- @Test
- public void testGetValue() {
- expect(context.getAttribute("attribute")).andReturn("value");
-
- replay(context);
- assertEquals("value", extractor.getValue("attribute"));
- verify(context);
- }
-
-}
diff --git a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/HeaderExtractorTest.java b/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/HeaderExtractorTest.java
deleted file mode 100644
index 7f5054c02..000000000
--- a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/HeaderExtractorTest.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import org.apache.tiles.request.portlet.extractor.HeaderExtractor;
-import org.junit.Before;
-import org.junit.Test;
-
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletResponse;
-import java.util.Enumeration;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.assertEquals;
-
-/**
- * Tests {@link HeaderExtractor}.
- */
-public class HeaderExtractorTest {
-
- /**
- * The request.
- */
- private PortletRequest request;
-
- /**
- * The response.
- */
- private PortletResponse response;
-
- /**
- * The extractor to test.
- */
- private HeaderExtractor extractor;
-
- /**
- * Sets up the test.
- */
- @Before
- public void setUp() {
- request = createMock(PortletRequest.class);
- response = createMock(PortletResponse.class);
- extractor = new HeaderExtractor(request, response);
- }
-
- /**
- * Test method for {@link HeaderExtractor#getKeys()}.
- */
- @SuppressWarnings("unchecked")
- @Test
- public void testGetKeys() {
- Enumeration keys = createMock(Enumeration.class);
-
- expect(request.getPropertyNames()).andReturn(keys);
-
- replay(request, response, keys);
- assertEquals(keys, extractor.getKeys());
- verify(request, response, keys);
- }
-
- /**
- * Test method for {@link HeaderExtractor#getValue(String)}.
- */
- @Test
- public void testGetValue() {
- expect(request.getProperty("name")).andReturn("value");
-
- replay(request, response);
- assertEquals("value", extractor.getValue("name"));
- verify(request, response);
- }
-
- /**
- * Test method for {@link HeaderExtractor#getValues(String)}.
- */
- @SuppressWarnings("unchecked")
- @Test
- public void testGetValues() {
- Enumeration keys = createMock(Enumeration.class);
-
- expect(request.getProperties("name")).andReturn(keys);
-
- replay(request, response, keys);
- assertEquals(keys, extractor.getValues("name"));
- verify(request, response, keys);
- }
-
- /**
- * Test method for {@link HeaderExtractor#setValue(String, String)}.
- */
- @Test
- public void testSetValue() {
- response.setProperty("name", "value");
-
- replay(request, response);
- extractor.setValue("name", "value");
- verify(request, response);
- }
-
-}
diff --git a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/InitParameterExtractorTest.java b/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/InitParameterExtractorTest.java
deleted file mode 100644
index 66a1f9ea7..000000000
--- a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/InitParameterExtractorTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import org.apache.tiles.request.portlet.extractor.InitParameterExtractor;
-import org.junit.Before;
-import org.junit.Test;
-
-import javax.portlet.PortletContext;
-import java.util.Enumeration;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.assertEquals;
-
-/**
- * Tests {@link InitParameterExtractor}.
- */
-public class InitParameterExtractorTest {
-
- /**
- * The portlet context.
- */
- private PortletContext context;
-
- /**
- * The extractor to test.
- */
- private InitParameterExtractor extractor;
-
- /**
- * Sets up the test.
- */
- @Before
- public void setUp() {
- context = createMock(PortletContext.class);
- extractor = new InitParameterExtractor(context);
- }
-
- /**
- * Test method for {@link InitParameterExtractor#getKeys()}.
- */
- @SuppressWarnings("unchecked")
- @Test
- public void testGetKeys() {
- Enumeration keys = createMock(Enumeration.class);
-
- expect(context.getInitParameterNames()).andReturn(keys);
-
- replay(context, keys);
- assertEquals(keys, extractor.getKeys());
- verify(context, keys);
- }
-
- /**
- * Test method for {@link InitParameterExtractor#getValue(String)}.
- */
- @Test
- public void testGetValue() {
- expect(context.getInitParameter("name")).andReturn("value");
-
- replay(context);
- assertEquals("value", extractor.getValue("name"));
- verify(context);
- }
-
-}
diff --git a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/ParameterExtractorTest.java b/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/ParameterExtractorTest.java
deleted file mode 100644
index 0e8005325..000000000
--- a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/ParameterExtractorTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import org.apache.tiles.request.portlet.extractor.ParameterExtractor;
-import org.junit.Before;
-import org.junit.Test;
-
-import javax.portlet.PortletRequest;
-import java.util.Enumeration;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.assertEquals;
-
-/**
- * Tests {@link ParameterExtractor}.
- */
-public class ParameterExtractorTest {
-
- /**
- * The request.
- */
- private PortletRequest request;
-
- /**
- * The extractor to test.
- */
- private ParameterExtractor extractor;
-
- /**
- * Sets up the test.
- */
- @Before
- public void setUp() {
- request = createMock(PortletRequest.class);
- extractor = new ParameterExtractor(request);
- }
-
- /**
- * Test method for {@link ParameterExtractor#getKeys()}.
- */
- @SuppressWarnings("unchecked")
- @Test
- public void testGetKeys() {
- Enumeration keys = createMock(Enumeration.class);
-
- expect(request.getParameterNames()).andReturn(keys);
-
- replay(request, keys);
- assertEquals(keys, extractor.getKeys());
- verify(request, keys);
- }
-
- /**
- * Test method for {@link ParameterExtractor#getValue(String)}.
- */
- @Test
- public void testGetValue() {
- expect(request.getParameter("name")).andReturn("value");
-
- replay(request);
- assertEquals("value", extractor.getValue("name"));
- verify(request);
- }
-
-}
diff --git a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/RequestScopeExtractorTest.java b/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/RequestScopeExtractorTest.java
deleted file mode 100644
index df76a515e..000000000
--- a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/RequestScopeExtractorTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import org.apache.tiles.request.portlet.extractor.RequestScopeExtractor;
-import org.junit.Before;
-import org.junit.Test;
-
-import javax.portlet.PortletRequest;
-import java.util.Enumeration;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.assertEquals;
-
-/**
- * Tests {@link RequestScopeExtractor}.
- */
-public class RequestScopeExtractorTest {
-
- /**
- * The request to test.
- */
- private PortletRequest request;
-
- /**
- * The extractor to test.
- */
- private RequestScopeExtractor extractor;
-
- /**
- * Sets up the test.
- */
- @Before
- public void setUp() {
- request = createMock(PortletRequest.class);
- extractor = new RequestScopeExtractor(request);
- }
-
- /**
- * Test method for {@link RequestScopeExtractor#setValue(String, Object)}.
- */
- @Test
- public void testSetValue() {
- request.setAttribute("name", "value");
-
- replay(request);
- extractor.setValue("name", "value");
- verify(request);
- }
-
- /**
- * Test method for {@link RequestScopeExtractor#removeValue(String)}.
- */
- @Test
- public void testRemoveValue() {
- request.removeAttribute("name");
-
- replay(request);
- extractor.removeValue("name");
- verify(request);
- }
-
- /**
- * Test method for {@link RequestScopeExtractor#getKeys()}.
- */
- @SuppressWarnings("unchecked")
- @Test
- public void testGetKeys() {
- Enumeration keys = createMock(Enumeration.class);
-
- expect(request.getAttributeNames()).andReturn(keys);
-
- replay(request, keys);
- assertEquals(keys, extractor.getKeys());
- verify(request, keys);
- }
-
- /**
- * Test method for {@link RequestScopeExtractor#getValue(String)}.
- */
- @Test
- public void testGetValue() {
- expect(request.getAttribute("name")).andReturn("value");
-
- replay(request);
- assertEquals("value", extractor.getValue("name"));
- verify(request);
- }
-
-}
diff --git a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/SessionScopeExtractorTest.java b/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/SessionScopeExtractorTest.java
deleted file mode 100644
index 09010ff0c..000000000
--- a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/SessionScopeExtractorTest.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import org.apache.tiles.request.portlet.extractor.SessionScopeExtractor;
-import org.junit.Before;
-import org.junit.Test;
-
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletSession;
-import java.util.Enumeration;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-
-/**
- * Tests {@link SessionScopeExtractor}.
- */
-public class SessionScopeExtractorTest {
-
- /**
- * The request.
- */
- private PortletRequest request;
-
- /**
- * The session.
- */
- private PortletSession session;
-
- /**
- * The scope to test.
- */
- private SessionScopeExtractor extractor;
-
- /**
- * Sets up the test.
- */
- @Before
- public void setUp() {
- request = createMock(PortletRequest.class);
- session = createMock(PortletSession.class);
- extractor = new SessionScopeExtractor(request, PortletSession.PORTLET_SCOPE);
- }
-
-
- /**
- * Tests {@link SessionScopeExtractor#SessionScopeExtractor(PortletRequest, int)}.
- */
- @Test(expected = IllegalArgumentException.class)
- public void testIllegalScope() {
- replay(request, session);
- new SessionScopeExtractor(request, 0);
- verify(request, session);
- }
-
- /**
- * Test method for {@link SessionScopeExtractor#setValue(String, Object)}.
- */
- @Test
- public void testSetValue() {
- expect(request.getPortletSession()).andReturn(session);
- session.setAttribute("name", "value", PortletSession.PORTLET_SCOPE);
-
- replay(request, session);
- extractor.setValue("name", "value");
- verify(request, session);
- }
-
- /**
- * Test method for {@link SessionScopeExtractor#removeValue(String)}.
- */
- @Test
- public void testRemoveValue() {
- expect(request.getPortletSession(false)).andReturn(session);
- session.removeAttribute("name", PortletSession.PORTLET_SCOPE);
-
- replay(request, session);
- extractor.removeValue("name");
- verify(request, session);
- }
-
- /**
- * Test method for {@link SessionScopeExtractor#getKeys()}.
- */
- @SuppressWarnings("unchecked")
- @Test
- public void testGetKeys() {
- Enumeration keys = createMock(Enumeration.class);
-
- expect(request.getPortletSession(false)).andReturn(session);
- expect(session.getAttributeNames(PortletSession.PORTLET_SCOPE)).andReturn(keys);
-
- replay(request, session, keys);
- assertEquals(keys, extractor.getKeys());
- verify(request, session, keys);
- }
-
- /**
- * Test method for {@link SessionScopeExtractor#getKeys()}.
- */
- @Test
- public void testGetKeysNoSession() {
- expect(request.getPortletSession(false)).andReturn(null);
-
- replay(request, session);
- assertNull(extractor.getKeys());
- verify(request, session);
- }
-
- /**
- * Test method for {@link SessionScopeExtractor#getValue(String)}.
- */
- @Test
- public void testGetValue() {
- expect(request.getPortletSession(false)).andReturn(session);
- expect(session.getAttribute("name", PortletSession.PORTLET_SCOPE)).andReturn("value");
-
- replay(request, session);
- assertEquals("value", extractor.getValue("name"));
- verify(request, session);
- }
-
- /**
- * Test method for {@link SessionScopeExtractor#getValue(String)}.
- */
- @Test
- public void testGetValueNoSession() {
- expect(request.getPortletSession(false)).andReturn(null);
-
- replay(request, session);
- assertNull(extractor.getValue("name"));
- verify(request, session);
- }
-
-}
diff --git a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/StateAwareParameterExtractorTest.java b/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/StateAwareParameterExtractorTest.java
deleted file mode 100644
index 5157b6fe6..000000000
--- a/plugins/portlet-tiles/src/test/java/org/apache/tiles/request/portlet/extractor/StateAwareParameterExtractorTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import org.apache.tiles.request.portlet.extractor.StateAwareParameterExtractor;
-import org.junit.Test;
-
-import javax.portlet.PortletRequest;
-import javax.portlet.StateAwareResponse;
-
-import static org.easymock.EasyMock.*;
-
-/**
- * Tests {@link StateAwareParameterExtractor}.
- */
-public class StateAwareParameterExtractorTest {
-
- /**
- * Test method for {@link StateAwareParameterExtractor#setValue(String, String)}.
- */
- @Test
- public void testSetValue() {
- PortletRequest request = createMock(PortletRequest.class);
- StateAwareResponse response = createMock(StateAwareResponse.class);
-
- response.setRenderParameter("name", "value");
-
- replay(request, response);
- StateAwareParameterExtractor extractor = new StateAwareParameterExtractor(request, response);
- extractor.setValue("name", "value");
- verify(request, response);
- }
-
-}
diff --git a/plugins/portlet/README.md b/plugins/portlet/README.md
deleted file mode 100644
index 69958edb0..000000000
--- a/plugins/portlet/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# Struts 2 Portlet plugin
-This plugin is deprecated, and it will be removed soon, **please do not use it**!
diff --git a/plugins/portlet/pom.xml b/plugins/portlet/pom.xml
deleted file mode 100644
index 8aed31c0b..000000000
--- a/plugins/portlet/pom.xml
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- 4.0.0
-
- org.apache.struts
- struts2-plugins
- 6.4.0-SNAPSHOT
-
-
- struts2-portlet-plugin
- jar
- DEPRECATED: Struts 2 Portlet Plugin - since 6.0.0
-
-
-
- org.apache.struts
- struts2-portlet-mocks-plugin
- test
-
-
-
- org.apache.struts
- struts2-velocity-plugin
-
-
-
-
-
- org.springframework
- spring-core
- true
-
-
-
-
- javax.portlet
- portlet-api
-
-
-
- mockobjects
- mockobjects-jdk1.3-j2ee1.3
- test
-
-
-
- org.easymock
- easymock
- test
-
-
- jmock
- jmock
- test
-
-
-
- jmock
- jmock-cglib
- test
-
-
-
- mockobjects
- mockobjects-core
- test
-
-
-
-
- org.springframework
- spring-test
- true
-
-
-
-
- UTF-8
-
-
-
diff --git a/plugins/portlet/src/main/java/org/apache/struts2/components/PortletUrlRenderer.java b/plugins/portlet/src/main/java/org/apache/struts2/components/PortletUrlRenderer.java
deleted file mode 100644
index 754389f83..000000000
--- a/plugins/portlet/src/main/java/org/apache/struts2/components/PortletUrlRenderer.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.struts2.components;
-
-import com.opensymphony.xwork2.ActionInvocation;
-import com.opensymphony.xwork2.inject.Inject;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.struts2.StrutsException;
-import org.apache.struts2.dispatcher.mapper.ActionMapper;
-import org.apache.struts2.portlet.context.PortletActionContext;
-import org.apache.struts2.portlet.util.PortletUrlHelper;
-import org.apache.struts2.portlet.util.PortletUrlHelperJSR286;
-import org.apache.struts2.url.QueryStringParser;
-import org.apache.struts2.views.util.UrlHelper;
-
-import javax.portlet.PortletMode;
-import java.io.IOException;
-import java.io.Writer;
-
-/**
- * Implementation of the {@link UrlRenderer} interface that renders URLs for portlet environments.
- *
- * @see UrlRenderer
- */
-public class PortletUrlRenderer implements UrlRenderer {
-
- /**
- * The servlet renderer used when not executing in a portlet context.
- */
- private ServletUrlRenderer servletRenderer = null;
- private PortletUrlHelper portletUrlHelper = null;
-
- public PortletUrlRenderer() {
- this.servletRenderer = new ServletUrlRenderer();
-
- if (PortletActionContext.isJSR268Supported()) {
- this.portletUrlHelper = new PortletUrlHelperJSR286();
- } else {
- this.portletUrlHelper = new PortletUrlHelper();
- }
- }
-
- @Inject
- public void setActionMapper(ActionMapper actionMapper) {
- servletRenderer.setActionMapper(actionMapper);
- }
-
- @Inject
- public void setUrlHelper(UrlHelper urlHelper) {
- servletRenderer.setUrlHelper(urlHelper);
- }
-
- @Inject
- public void setQueryStringParser(QueryStringParser queryStringParser) {
- this.servletRenderer.setQueryStringParser(queryStringParser);
- }
-
- /**
- * {@inheritDoc}
- */
- public void renderUrl(Writer writer, UrlProvider urlComponent) {
- if (PortletActionContext.getPortletContext() == null) {
- servletRenderer.renderUrl(writer, urlComponent);
- return;
- }
- String result;
- if (isPortletModeChange(urlComponent, PortletActionContext.getRequest().getPortletMode())
- && StringUtils.isEmpty(urlComponent.getNamespace())) {
- String mode = urlComponent.getPortletMode();
- PortletMode portletMode = new PortletMode(mode);
- String action = urlComponent.getAction();
- if (StringUtils.isEmpty(action)) {
- action = PortletActionContext.getModeActionMap().get(portletMode).getName();
- }
- String modeNamespace = PortletActionContext.getModeNamespaceMap().get(portletMode);
- result = portletUrlHelper.buildUrl(action, modeNamespace, urlComponent.getMethod(),
- urlComponent.getParameters(), urlComponent.getPortletUrlType(), mode, urlComponent.getWindowState());
-
- } else {
- String namespace = urlComponent.determineNamespace(urlComponent.getNamespace(), urlComponent.getStack(), urlComponent.getHttpServletRequest());
- urlComponent.setNamespace(namespace);
- if (onlyActionSpecified(urlComponent)) {
- if (StringUtils.isNotEmpty(urlComponent.getAction())) {
- String action = urlComponent.findString(urlComponent.getAction());
- result = portletUrlHelper.buildUrl(action, urlComponent.getNamespace(), urlComponent.getMethod(),
- urlComponent.getParameters(), urlComponent.getPortletUrlType(), urlComponent.getPortletMode(), urlComponent.getWindowState());
- } else {
- result = portletUrlHelper.buildUrl(urlComponent.getAction(), urlComponent.getNamespace(), urlComponent.getMethod(),
- urlComponent.getParameters(), urlComponent.getPortletUrlType(), urlComponent.getPortletMode(), urlComponent.getWindowState());
- }
- } else if (onlyValueSpecified(urlComponent)) {
- result = portletUrlHelper.buildResourceUrl(urlComponent.getValue(), urlComponent.getParameters());
- } else {
- result = createDefaultUrl(urlComponent);
- }
- }
- String anchor = urlComponent.getAnchor();
- if (StringUtils.isNotEmpty(anchor)) {
- result += '#' + urlComponent.findString(anchor);
- }
-
- String var = urlComponent.getVar();
-
- if (var != null) {
- urlComponent.putInContext(result);
-
- // add to the request and page scopes as well
- urlComponent.getHttpServletRequest().setAttribute(var, result);
- } else {
- try {
- writer.write(result);
- } catch (IOException e) {
- throw new StrutsException("IOError: " + e.getMessage(), e);
- }
- }
- }
-
- boolean isPortletModeChange(UrlProvider urlComponent, PortletMode currentMode) {
- if (StringUtils.isNotEmpty(urlComponent.getPortletMode())) {
- PortletMode newPortletMode = new PortletMode(urlComponent.getPortletMode());
- return !(newPortletMode.equals(currentMode));
- }
- return false;
- }
-
- private String createDefaultUrl(UrlProvider urlComponent) {
- ActionInvocation ai = urlComponent.getStack().getActionContext().getActionInvocation();
- String action = ai.getProxy().getActionName();
- return portletUrlHelper.buildUrl(action, urlComponent.getNamespace(), urlComponent.getMethod(), urlComponent.getParameters(),
- urlComponent.getPortletUrlType(), urlComponent.getPortletMode(), urlComponent.getWindowState());
- }
-
- private boolean onlyValueSpecified(UrlProvider urlComponent) {
- return urlComponent.getValue() != null && urlComponent.getAction() == null;
- }
-
- private boolean onlyActionSpecified(UrlProvider urlComponent) {
- return urlComponent.getValue() == null && urlComponent.getAction() != null;
- }
-
- /**
- * {@inheritDoc}
- */
- public void renderFormUrl(Form formComponent) {
- if (PortletActionContext.getPortletContext() == null) {
- servletRenderer.renderFormUrl(formComponent);
- return;
- }
- String namespace = formComponent.determineNamespace(formComponent.namespace, formComponent.getStack(),
- formComponent.request);
- String action;
- if (formComponent.action != null) {
- action = formComponent.findString(formComponent.action);
- } else {
- ActionInvocation ai = formComponent.getStack().getActionContext().getActionInvocation();
- action = ai.getProxy().getActionName();
- }
-
- String type = "action";
- if (StringUtils.isNotEmpty(formComponent.method)) {
- if ("GET".equalsIgnoreCase(formComponent.method.trim())) {
- type = "render";
- }
- }
- if (action != null) {
- String result = portletUrlHelper.buildUrl(action, namespace, null,
- formComponent.getParameters(), type, formComponent.portletMode, formComponent.windowState);
- formComponent.addParameter("action", result);
-
-
- // name/id: cut out anything between / and . should be the id and
- // name
- String id = formComponent.getId();
- if (id == null) {
- int slash = action.lastIndexOf('/');
- int dot = action.indexOf('.', slash);
- if (dot != -1) {
- id = action.substring(slash + 1, dot);
- } else {
- id = action.substring(slash + 1);
- }
- String escapedId = formComponent.escape(id);
- formComponent.addParameter("id", escapedId);
- formComponent.addParameter("escapedId", escapedId);
- }
- }
- }
-
- public void beforeRenderUrl(UrlProvider urlComponent) {
- if (PortletActionContext.getPortletContext() == null) {
- servletRenderer.beforeRenderUrl(urlComponent);
- }
- }
-
-}
diff --git a/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletApplicationMap.java b/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletApplicationMap.java
deleted file mode 100644
index 701deb004..000000000
--- a/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletApplicationMap.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.struts2.portlet;
-
-import javax.portlet.PortletContext;
-import java.io.Serializable;
-import java.util.AbstractMap;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Portlet specific {@link java.util.Map} implementation representing the
- * {@link javax.portlet.PortletContext} of a Portlet.
- *
- */
-public class PortletApplicationMap extends AbstractMap implements Serializable {
-
- private static final long serialVersionUID = 2296107511063504414L;
-
- private final PortletContext context;
- private Set> entries;
-
- /**
- * Creates a new map object given the {@link PortletContext}.
- *
- * @param ctx The portlet context.
- */
- public PortletApplicationMap(PortletContext ctx) {
- this.context = ctx;
- }
-
- /**
- * Removes all entries from the Map and removes all attributes from the
- * portlet context.
- */
- @Override
- public void clear() {
- entries = null;
-
- Enumeration e = context.getAttributeNames();
-
- while (e.hasMoreElements()) {
- context.removeAttribute(e.nextElement().toString());
- }
- }
-
- /**
- * Creates a Set of all portlet context attributes as well as context init
- * parameters.
- *
- * @return a Set of all portlet context attributes as well as context init
- * parameters.
- */
- @Override
- public Set> entrySet() {
- if (entries == null) {
- entries = new HashSet>();
-
- // Add portlet context attributes
- Enumeration enumeration = context.getAttributeNames();
-
- while (enumeration.hasMoreElements()) {
- final String key = enumeration.nextElement().toString();
- final Object value = context.getAttribute(key);
- entries.add(new Entry() {
- public boolean equals(Object obj) {
- Map.Entry entry = (Map.Entry) obj;
-
- return ((key == null) ? (entry.getKey() == null) : key
- .equals(entry.getKey()))
- && ((value == null) ? (entry.getValue() == null)
- : value.equals(entry.getValue()));
- }
-
- public int hashCode() {
- return ((key == null) ? 0 : key.hashCode())
- ^ ((value == null) ? 0 : value.hashCode());
- }
-
- public String getKey() {
- return key;
- }
-
- public Object getValue() {
- return value;
- }
-
- public Object setValue(Object obj) {
- context.setAttribute(key, obj);
-
- return value;
- }
- });
- }
-
- // Add portlet context init params
- enumeration = context.getInitParameterNames();
-
- while (enumeration.hasMoreElements()) {
- final String key = enumeration.nextElement().toString();
- final Object value = context.getInitParameter(key);
- entries.add(new Entry() {
- public boolean equals(Object obj) {
- Map.Entry entry = (Map.Entry) obj;
-
- return ((key == null) ? (entry.getKey() == null) : key
- .equals(entry.getKey()))
- && ((value == null) ? (entry.getValue() == null)
- : value.equals(entry.getValue()));
- }
-
- public int hashCode() {
- return ((key == null) ? 0 : key.hashCode())
- ^ ((value == null) ? 0 : value.hashCode());
- }
-
- public String getKey() {
- return key;
- }
-
- public Object getValue() {
- return value;
- }
-
- public Object setValue(Object obj) {
- context.setAttribute(key, obj);
-
- return value;
- }
- });
- }
- }
-
- return entries;
- }
-
- /**
- * Returns the portlet context attribute or init parameter based on the
- * given key. If the entry is not found, null is returned.
- *
- * @param key
- * the entry key.
- * @return the portlet context attribute or init parameter or null
- * if the entry is not found.
- */
- @Override
- public Object get(Object key) {
- if (key == null) {
- return null;
- }
- // Try context attributes first, then init params
- // This gives the proper shadowing effects
- Object value = context.getAttribute(key.toString());
-
- return (value == null) ? context.getInitParameter(key.toString()) : value;
- }
-
- /**
- * Sets a portlet context attribute given a attribute name and value.
- *
- * @param key
- * the name of the attribute.
- * @param value
- * the value to set.
- * @return the attribute that was just set.
- */
- @Override
- public Object put(String key, Object value) {
- entries = null;
- context.setAttribute(key, value);
-
- return get(key);
- }
-
- /**
- * Removes the specified portlet context attribute.
- *
- * @param key
- * the attribute to remove.
- * @return the entry that was just removed.
- */
- public Object remove(String key) {
- entries = null;
-
- Object value = get(key);
- context.removeAttribute(key);
-
- return value;
- }
-}
diff --git a/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletConstants.java b/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletConstants.java
deleted file mode 100644
index a3e08def8..000000000
--- a/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletConstants.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.struts2.portlet;
-
-import org.apache.struts2.ServletActionContext;
-import org.apache.struts2.portlet.dispatcher.DispatcherServlet;
-
-public class PortletConstants {
- /**
- * Default action name to use when no default action has been configured in the portlet
- * init parameters.
- */
- public static String DEFAULT_ACTION_NAME = "default";
-
- /**
- * Action name parameter name
- */
- public static String ACTION_PARAM = "struts.portlet.action";
-
- /**
- * Key for parameter holding the last executed portlet mode.
- */
- public static String MODE_PARAM = "struts.portlet.mode";
-
- /**
- * Key used for looking up and storing the portlet phase
- */
- public static String PHASE = "struts.portlet.phase";
-
- /**
- * Key used for looking up and storing the
- * {@link javax.portlet.PortletRequest}
- */
- public static String REQUEST = "struts.portlet.request";
-
- /**
- * Key used for looking up and storing the
- * {@link javax.portlet.PortletResponse}
- */
- public static String RESPONSE = "struts.portlet.response";
-
- /**
- * Key used for looking up and storing the action that was invoked in the action or event phase.
- */
- public static String EVENT_ACTION = "struts.portlet.eventAction";
-
- /**
- * Key used for looking up and storing the
- * {@link javax.portlet.PortletConfig}
- */
- public static String PORTLET_CONFIG = "struts.portlet.config";
-
- /**
- * Name of the action used as error handler
- */
- public static String ERROR_ACTION = "errorHandler";
-
- /**
- * Key for the portlet namespace stored in the
- * {@link org.apache.struts2.portlet.context.PortletActionContext}.
- */
- public static String PORTLET_NAMESPACE = "struts.portlet.portletNamespace";
-
- /**
- * Key for the mode-to-namespace map stored in the
- * {@link org.apache.struts2.portlet.context.PortletActionContext}.
- */
- public static String MODE_NAMESPACE_MAP = "struts.portlet.modeNamespaceMap";
-
- /**
- * Key for the mode-to-default-action map stored in the
- * {@link org.apache.struts2.portlet.context.PortletActionContext}.
- */
- public static String DEFAULT_ACTION_MAP = "struts.portlet.modeActionMap";
-
- /**
- * Key for the default action name for the portlet, stored in the
- * {@link org.apache.struts2.portlet.context.PortletActionContext}.
- */
- public static String DEFAULT_ACTION_FOR_MODE = "struts.portlet.defaultActionForMode";
-
- /**
- * Key for request attribute indicating if the action has been reset.
- */
- public static String ACTION_RESET = "struts.portlet.actionReset";
-
- /**
- * Key for session attribute indicating the location of the render direct action.
- */
- public static String RENDER_DIRECT_LOCATION = "struts.portlet.renderDirectLocation";
-
- /**
- * Namespace use for executing the renderDirect action. Necessary to get the namespaces on s:urls correct.
- */
- public static String RENDER_DIRECT_NAMESPACE = "struts.portlet.renderDirectNamespace";
-
- /**
- * Key for the dispatch instruction for the {@link DispatcherServlet}
- */
- public static String DISPATCH_TO = "struts.portlet.dispatchTo";
-
- /**
- * Session key where the value stack from the event phase is stored.
- */
- public static String STACK_FROM_EVENT_PHASE = "struts.portlet.valueStackFromEventPhase";
-
- /**
- * Default name of dispatcher servlet in web.xml
- */
- public static String DEFAULT_DISPATCHER_SERVLET_NAME = "Struts2PortletDispatcherServlet";
-
- /**
- * Key for the action mapping in the context
- */
- public static String ACTION_MAPPING = ServletActionContext.ACTION_MAPPING;
-
-}
diff --git a/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletPhase.java b/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletPhase.java
deleted file mode 100644
index a130cd358..000000000
--- a/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletPhase.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.struts2.portlet;
-
-/**
- * Defines phases of portlet processing per the portlet specification.
- */
-public enum PortletPhase {
-
- /**
- * Constant used for the render phase (
- * {@link javax.portlet.Portlet#render(javax.portlet.RenderRequest, javax.portlet.RenderResponse)})
- */
- RENDER_PHASE,
-
- /**
- * Constant used for the action phase (
- * {@link javax.portlet.Portlet#processAction(javax.portlet.ActionRequest, javax.portlet.ActionResponse)})
- */
- ACTION_PHASE,
-
- /**
- * Constant used for the event phase
- */
- EVENT_PHASE,
-
- /**
- * Constant used for the serve resource phase that was added with the 2.0 portlet specification.
- */
- SERVE_RESOURCE_PHASE;
-
- public boolean isRender() {
- return this.equals(RENDER_PHASE);
- }
-
- public boolean isAction() {
- return this.equals(ACTION_PHASE);
- }
-
- public boolean isEvent() {
- return this.equals(EVENT_PHASE);
- }
-
- public boolean isResource() {
- return this.equals(SERVE_RESOURCE_PHASE);
- }
-
-}
diff --git a/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletRequestMap.java b/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletRequestMap.java
deleted file mode 100644
index cf4d727db..000000000
--- a/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletRequestMap.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.struts2.portlet;
-
-import javax.portlet.PortletRequest;
-import java.util.AbstractMap;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * A simple implementation of the {@link java.util.Map} interface to handle a collection of request attributes.
- *
- */
-public class PortletRequestMap extends AbstractMap {
-
- private Set> entries = null;
- private PortletRequest request = null;
-
- /**
- * Saves the request to use as the backing for getting and setting values
- *
- * @param request the portlet request.
- */
- public PortletRequestMap(PortletRequest request) {
- this.request = request;
- }
-
- /**
- * Removes all attributes from the request as well as clears entries in this
- * map.
- */
- public void clear() {
- entries = null;
- Enumeration keys = request.getAttributeNames();
- ArrayList keyStrings = new ArrayList<>();
- // Depending on the underlying collection, a ConcurrentModificationException may occur if we attempt
- // to remove attributes while iterating over the keys Enumeration. Instead use an interim collection to
- // gather all the keys and then remove them.
- while (keys.hasMoreElements()) {
- keyStrings.add((String) keys.nextElement());
- }
- for (String key : keyStrings){
- request.removeAttribute(key);
- }
- }
-
- /**
- * Returns a Set of attributes from the portlet request.
- *
- * @return a Set of attributes from the portlet request.
- */
- public Set> entrySet() {
- if (entries == null) {
- entries = new HashSet>();
-
- Enumeration enumeration = request.getAttributeNames();
-
- while (enumeration.hasMoreElements()) {
- final String key = enumeration.nextElement();
- final Object value = request.getAttribute(key);
- entries.add(new Entry() {
- public boolean equals(Object obj) {
- Entry entry = (Entry) obj;
-
- return ((key == null) ? (entry.getKey() == null) : key
- .equals(entry.getKey()))
- && ((value == null) ? (entry.getValue() == null)
- : value.equals(entry.getValue()));
- }
-
- public int hashCode() {
- return ((key == null) ? 0 : key.hashCode())
- ^ ((value == null) ? 0 : value.hashCode());
- }
-
- public String getKey() {
- return key;
- }
-
- public Object getValue() {
- return value;
- }
-
- public Object setValue(Object obj) {
- request.setAttribute(key, obj);
-
- return value;
- }
- });
- }
- }
-
- return entries;
- }
-
- /**
- * Returns the request attribute associated with the given key or
- * null if it doesn't exist.
- *
- * @param key the name of the request attribute.
- * @return the request attribute or null if it doesn't exist.
- */
- public Object get(Object key) {
- if (key == null) {
- return null;
- }
- return request.getAttribute(key.toString());
- }
-
- /**
- * Saves an attribute in the request.
- *
- * @param key the name of the request attribute.
- * @param value the value to set.
- * @return the object that was just set.
- */
- public Object put(String key, Object value) {
- entries = null;
- request.setAttribute(key, value);
-
- return get(key);
- }
-
- /**
- * Removes the specified request attribute.
- *
- * @param key the name of the attribute to remove.
- * @return the value that was removed or null if the value was
- * not found (and hence, not removed).
- */
- public Object remove(Object key) {
- entries = null;
-
- Object value = get(key);
- request.removeAttribute(key.toString());
-
- return value;
- }
-
-}
diff --git a/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletSessionMap.java b/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletSessionMap.java
deleted file mode 100644
index 600079a9e..000000000
--- a/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletSessionMap.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.struts2.portlet;
-
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletSession;
-import java.util.AbstractMap;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * A simple implementation of the {@link java.util.Map} interface to handle a collection of portlet session
- * attributes. The {@link #entrySet()} method enumerates over all session attributes and creates a Set of entries.
- * Note, this will occur lazily - only when the entry set is asked for.
- *
- */
-public class PortletSessionMap extends AbstractMap {
-
- private final PortletSession session;
- private Set> entries = null;
-
- /**
- * Creates a new session map given a portlet request.
- *
- * @param request the portlet request object.
- */
- public PortletSessionMap(PortletRequest request) {
- this.session = request.getPortletSession();
- }
-
- /**
- * @see java.util.Map#entrySet()
- */
- public Set