You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by jo...@apache.org on 2015/06/07 21:04:24 UTC

[5/6] struts git commit: WW-4510 Upgrade spring plugin dependencies to spring version 4.x

WW-4510 Upgrade spring plugin dependencies to spring version 4.x

- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/243c92bf
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/243c92bf
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/243c92bf

Branch: refs/heads/master
Commit: 243c92bf4605dc694aaea3e1cff25367c8f6970f
Parents: 8aa389e
Author: Johannes Geppert <jo...@gmail.com>
Authored: Sun Jun 7 20:59:42 2015 +0200
Committer: Johannes Geppert <jo...@gmail.com>
Committed: Sun Jun 7 20:59:42 2015 +0200

----------------------------------------------------------------------
 apps/blank/pom.xml                              |   3 +-
 apps/jboss-blank/pom.xml                        |   4 +-
 apps/portlet/pom.xml                            |   6 +-
 .../pluto-portal-driver-services-config.xml     | 155 +++++++++++++++++++
 .../main/webapp/WEB-INF/applicationContext.xml  |  10 +-
 .../src/test/java/JettyPlutoLauncher.java       |   8 +-
 .../struts2/portlet/test/BasePortletTest.java   |   8 +-
 apps/showcase/pom.xml                           |   9 ++
 core/pom.xml                                    |   5 -
 plugins/embeddedjsp/pom.xml                     |   9 ++
 plugins/jfreechart/pom.xml                      |   9 ++
 plugins/json/pom.xml                            |   9 ++
 plugins/junit/pom.xml                           |   9 ++
 plugins/portlet/pom.xml                         |   9 ++
 plugins/rest/pom.xml                            |   9 ++
 .../struts2/rest/DefaultHttpHeadersTest.java    |  11 +-
 plugins/sitegraph/pom.xml                       |   9 ++
 plugins/testng/pom.xml                          |   9 ++
 pom.xml                                         |   2 +-
 19 files changed, 263 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/apps/blank/pom.xml
----------------------------------------------------------------------
diff --git a/apps/blank/pom.xml b/apps/blank/pom.xml
index cec84f6..5d170e9 100644
--- a/apps/blank/pom.xml
+++ b/apps/blank/pom.xml
@@ -37,7 +37,8 @@
 
         <dependency>
             <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.1.0</version>
             <scope>provided</scope>
         </dependency>
 

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/apps/jboss-blank/pom.xml
----------------------------------------------------------------------
diff --git a/apps/jboss-blank/pom.xml b/apps/jboss-blank/pom.xml
index 07f0166..ad9ebdb 100644
--- a/apps/jboss-blank/pom.xml
+++ b/apps/jboss-blank/pom.xml
@@ -37,8 +37,8 @@
 
         <dependency>
             <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <version>2.4</version>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.1.0</version>
             <scope>provided</scope>
         </dependency>
 

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/apps/portlet/pom.xml
----------------------------------------------------------------------
diff --git a/apps/portlet/pom.xml b/apps/portlet/pom.xml
index a5a7adc..12ddb68 100644
--- a/apps/portlet/pom.xml
+++ b/apps/portlet/pom.xml
@@ -49,7 +49,7 @@
                     <plugin>
                         <groupId>org.apache.pluto</groupId>
                         <artifactId>maven-pluto-plugin</artifactId>
-                        <version>1.1.3</version>
+                        <version>1.1.7</version>
                         <executions>
                             <execution>
                                 <phase>generate-resources</phase>
@@ -68,7 +68,7 @@
                             <webDefaultXml>src/main/webapp/WEB-INF/jetty-pluto-web-default.xml</webDefaultXml>
                             <systemProperties>
                                 <systemProperty>
-                                    <name>org.apache.pluto.embedded.portletId</name>
+                                    <name>org.apache.pluto.embedded.portletIds</name>
                                     <value>StrutsPortlet</value>
                                 </systemProperty>
                             </systemProperties>
@@ -172,7 +172,7 @@
         <dependency>
             <groupId>com.bekk.boss</groupId>
             <artifactId>maven-jetty-pluto-embedded</artifactId>
-            <version>1.0</version>
+            <version>1.0.1</version>
             <scope>test</scope>
         </dependency>
 

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/apps/portlet/src/main/resources/pluto-portal-driver-services-config.xml
----------------------------------------------------------------------
diff --git a/apps/portlet/src/main/resources/pluto-portal-driver-services-config.xml b/apps/portlet/src/main/resources/pluto-portal-driver-services-config.xml
new file mode 100644
index 0000000..6803d03
--- /dev/null
+++ b/apps/portlet/src/main/resources/pluto-portal-driver-services-config.xml
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+          http://www.springframework.org/schema/beans/spring-beans.xsd">
+    <!--
+    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.
+    -->
+    <!--
+
+      ************************************************************
+
+      NOTE:
+
+      The following configuration file contains the spring bean
+      configuration needed to run the pluto-portal in memory
+      mode.  Optional services are available which allow
+      persistence to an rdbms, xml files, etc. . . however,
+      we strongly recomend that if you are looking at these
+      advanced features that you consider an enterprise portal
+      such as Apache Jetspeed.
+
+      Service Functions Include:
+       - Preference Persistence
+       - User Attribute Persistence
+       - Portlet Registry
+       - Page Registry
+      ************************************************************
+
+      -->
+
+    <bean id="RequiredContainerServices"
+          name="OptionalContainerServices"
+          class="org.apache.pluto.driver.services.container.ContainerServicesImpl"
+          scope="singleton">
+        <constructor-arg>
+            <ref bean="PortalContext"/>
+        </constructor-arg>
+        <constructor-arg>
+            <ref bean="DriverConfiguration"/>
+        </constructor-arg>
+    </bean>
+
+    <bean id="PortalContext"
+          class="org.apache.pluto.driver.services.container.PortalContextImpl">
+        <constructor-arg>
+            <ref bean="DriverConfiguration"/>
+        </constructor-arg>
+    </bean>
+
+
+    <!-- ================================================ -->
+    <!-- The single top element of the configuration tree -->
+    <!-- ================================================ -->
+    <bean id="DriverConfiguration"
+          class="org.apache.pluto.driver.config.impl.DriverConfigurationImpl">
+
+        <!-- ===== Portal Services ===== -->
+        <constructor-arg>
+            <ref bean="PortalURLParser"/>
+        </constructor-arg>
+        <constructor-arg>
+            <ref bean="PropertyConfigService"/>
+        </constructor-arg>
+        <constructor-arg>
+            <ref bean="RenderConfigService"/>
+        </constructor-arg>
+        <constructor-arg>
+            <ref bean="SupportedModesService"/>
+        </constructor-arg>
+        <constructor-arg>
+            <ref bean="SupportedWindowStatesService"/>
+        </constructor-arg>
+
+        <!-- === Container Services === -->
+        <constructor-arg>
+            <ref bean="PortalCallbackService"/>
+        </constructor-arg>
+
+        <!--  Optional Container Services -->
+        <!--
+        <property name="portletPreferencesService"><ref bean="PortletPreferencesService"/></property>
+        <property name="userAttributeService"><ref bean="UserAttributeService"/></property>
+        -->
+    </bean>
+
+    <!-- ================================================ -->
+    <!-- The single top element of the administration tree -->
+    <!-- ================================================ -->
+    <bean id="AdminConfiguration" class="org.apache.pluto.driver.config.impl.AdminConfigurationImpl">
+        <property name="renderConfigAdminService">
+            <ref bean="RenderConfigService"/>
+        </property>
+    </bean>
+
+
+    <!-- ================================================ -->
+    <!-- Portal Services injected into the Configuration  -->
+    <!-- ================================================ -->
+    <bean id="PortalURLParser"
+          class="org.apache.pluto.driver.url.impl.PortalURLParserImpl"
+          factory-method="getParser"
+          scope="singleton">
+    </bean>
+
+    <bean id="PropertyConfigService"
+          class="org.apache.pluto.driver.services.impl.resource.PropertyConfigServiceImpl"
+          scope="singleton">
+    </bean>
+
+    <bean id="RenderConfigService"
+          class="org.apache.pluto.driver.services.impl.resource.RenderConfigServiceImpl"
+          scope="singleton">
+    </bean>
+
+    <bean id="SupportedModesService"
+          class="org.apache.pluto.driver.services.impl.resource.SupportedModesServiceImpl"
+          scope="singleton">
+        <constructor-arg>
+            <ref bean="PropertyConfigService"/>
+        </constructor-arg>
+    </bean>
+
+    <bean id="SupportedWindowStatesService"
+          class="org.apache.pluto.driver.services.impl.resource.SupportedWindowStateServiceImpl"
+          scope="singleton">
+        <constructor-arg>
+            <ref bean="PropertyConfigService"/>
+        </constructor-arg>
+    </bean>
+
+    <!-- ================================================ -->
+    <!-- Container Services injected into  Configuration  -->
+    <!-- ================================================ -->
+    <bean id="PortalCallbackService"
+          class="org.apache.pluto.driver.services.container.PortalCallbackServiceImpl"
+          scope="singleton">
+    </bean>
+
+</beans>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/apps/portlet/src/main/webapp/WEB-INF/applicationContext.xml
----------------------------------------------------------------------
diff --git a/apps/portlet/src/main/webapp/WEB-INF/applicationContext.xml b/apps/portlet/src/main/webapp/WEB-INF/applicationContext.xml
index 6bd3e54..5df7f35 100644
--- a/apps/portlet/src/main/webapp/WEB-INF/applicationContext.xml
+++ b/apps/portlet/src/main/webapp/WEB-INF/applicationContext.xml
@@ -1,16 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
+<beans xmlns="http://www.springframework.org/schema/beans"
+	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	   xsi:schemaLocation="http://www.springframework.org/schema/beans
+          http://www.springframework.org/schema/beans/spring-beans.xsd">
+
 
 <!--
 	- Application context definition for "springapp" DispatcherServlet.
 -->
 
-<beans default-autowire="autodetect">
 	<bean id="thingManager"
 		class="org.apache.struts2.portlet.example.spring.ThingManager">
 	</bean>
+
 	<bean id="springAction"
-		class="org.apache.struts2.portlet.example.spring.SpringAction" singleton="false">
+		  class="org.apache.struts2.portlet.example.spring.SpringAction" scope="prototype">
 		<property name="thingManager">
 			<ref bean="thingManager" />
 		</property>

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/apps/portlet/src/test/java/JettyPlutoLauncher.java
----------------------------------------------------------------------
diff --git a/apps/portlet/src/test/java/JettyPlutoLauncher.java b/apps/portlet/src/test/java/JettyPlutoLauncher.java
index ba5e352..ef24a40 100644
--- a/apps/portlet/src/test/java/JettyPlutoLauncher.java
+++ b/apps/portlet/src/test/java/JettyPlutoLauncher.java
@@ -5,10 +5,10 @@ import org.mortbay.jetty.webapp.WebAppContext;
 
 public class JettyPlutoLauncher {
 	public static void main(String[] args) throws Exception {
-	    System.setProperty("org.apache.pluto.embedded.portletId", "StrutsPortlet");
-	    Server server = new Server(8080);
-	    WebAppContext webapp = new WebAppContext("src/main/webapp", "/test");
-	    webapp.setDefaultsDescriptor("/WEB-INF/jetty-pluto-web-default.xml");
+        System.setProperty("org.apache.pluto.embedded.portletIds", "StrutsPortlet");
+        Server server = new Server(8080);
+        WebAppContext webapp = new WebAppContext(System.getProperty("user.dir") + "/apps/portlet/src/main/webapp", "/test");
+        webapp.setDefaultsDescriptor("/WEB-INF/jetty-pluto-web-default.xml");
 	    ServletHolder portletServlet = new ServletHolder(new PortletServlet());
 	    portletServlet.setInitParameter("portlet-name", "StrutsPortlet");
 	    portletServlet.setInitOrder(1);

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/apps/portlet/src/test/java/org/apache/struts2/portlet/test/BasePortletTest.java
----------------------------------------------------------------------
diff --git a/apps/portlet/src/test/java/org/apache/struts2/portlet/test/BasePortletTest.java b/apps/portlet/src/test/java/org/apache/struts2/portlet/test/BasePortletTest.java
index eceb4c9..13f172f 100644
--- a/apps/portlet/src/test/java/org/apache/struts2/portlet/test/BasePortletTest.java
+++ b/apps/portlet/src/test/java/org/apache/struts2/portlet/test/BasePortletTest.java
@@ -1,14 +1,13 @@
 package org.apache.struts2.portlet.test;
 
-import java.io.File;
-
 import net.sourceforge.jwebunit.junit.WebTestCase;
-
 import org.apache.pluto.core.PortletServlet;
 import org.mortbay.jetty.Server;
 import org.mortbay.jetty.servlet.ServletHolder;
 import org.mortbay.jetty.webapp.WebAppContext;
 
+import java.io.File;
+
 public abstract class BasePortletTest extends WebTestCase {
 	
 	protected Server server;
@@ -18,8 +17,9 @@ public abstract class BasePortletTest extends WebTestCase {
 	private int port;
 	
 	public void setUp() throws Exception {
-		System.setProperty("org.apache.pluto.embedded.portletId", getPortletName());
+		System.setProperty("org.apache.pluto.embedded.portletIds", getPortletName());
 		server = new Server(port);
+
 		WebAppContext webapp = new WebAppContext("src/main/webapp", contextPath);
 		webapp.setTempDirectory(new File("target/work"));
 		webapp.setDefaultsDescriptor("/WEB-INF/jetty-pluto-web-default.xml");

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/apps/showcase/pom.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/pom.xml b/apps/showcase/pom.xml
index e1c9b77..7173275 100644
--- a/apps/showcase/pom.xml
+++ b/apps/showcase/pom.xml
@@ -177,6 +177,15 @@
             <version>3.0.0</version>
         </dependency>
 
+        <!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
+           This is only necessary in tests-->
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.1.0</version>
+            <scope>test</scope>
+        </dependency>
+
     </dependencies>
 
     <build>

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 34a1c55..be09a0b 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -311,11 +311,6 @@
             <version>3.1.0</version>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-web</artifactId>
-            <scope>test</scope>
-        </dependency>
 
     </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/plugins/embeddedjsp/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/pom.xml b/plugins/embeddedjsp/pom.xml
index 89ace69..077b861 100644
--- a/plugins/embeddedjsp/pom.xml
+++ b/plugins/embeddedjsp/pom.xml
@@ -82,6 +82,15 @@
             <artifactId>jasper</artifactId>
             <scope>provided</scope>
         </dependency>
+
+        <!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
+           This is only necessary in tests-->
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.1.0</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <build>

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/plugins/jfreechart/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/jfreechart/pom.xml b/plugins/jfreechart/pom.xml
index dda577d..a6a19d8 100644
--- a/plugins/jfreechart/pom.xml
+++ b/plugins/jfreechart/pom.xml
@@ -74,6 +74,15 @@
             <scope>test</scope>
         </dependency>
 
+        <!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
+           This is only necessary in tests-->
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.1.0</version>
+            <scope>test</scope>
+        </dependency>
+
     </dependencies>
     <properties>
     	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/plugins/json/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/json/pom.xml b/plugins/json/pom.xml
index f060a26..fc3d83d 100644
--- a/plugins/json/pom.xml
+++ b/plugins/json/pom.xml
@@ -97,6 +97,15 @@
             <scope>test</scope>
         </dependency>
 
+        <!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
+           This is only necessary in tests-->
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.1.0</version>
+            <scope>test</scope>
+        </dependency>
+
     </dependencies>
     <properties>
     	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/plugins/junit/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/junit/pom.xml b/plugins/junit/pom.xml
index 32caa77..798c143 100644
--- a/plugins/junit/pom.xml
+++ b/plugins/junit/pom.xml
@@ -74,6 +74,15 @@
             <artifactId>portlet-api</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
+           This is only necessary in tests-->
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.1.0</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
     <properties>
     	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/plugins/portlet/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/portlet/pom.xml b/plugins/portlet/pom.xml
index fb88984..da5a8ca 100644
--- a/plugins/portlet/pom.xml
+++ b/plugins/portlet/pom.xml
@@ -115,6 +115,15 @@
             <artifactId>cglib</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
+           This is only necessary in tests-->
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.1.0</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
     <properties>
     	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/plugins/rest/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/rest/pom.xml b/plugins/rest/pom.xml
index a151084..2ad36e7 100644
--- a/plugins/rest/pom.xml
+++ b/plugins/rest/pom.xml
@@ -77,6 +77,15 @@
             <optional>true</optional>
         </dependency>
 
+        <!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
+           This is only necessary in tests-->
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.1.0</version>
+            <scope>test</scope>
+        </dependency>
+
     </dependencies>
 
 </project>

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/plugins/rest/src/test/java/org/apache/struts2/rest/DefaultHttpHeadersTest.java
----------------------------------------------------------------------
diff --git a/plugins/rest/src/test/java/org/apache/struts2/rest/DefaultHttpHeadersTest.java b/plugins/rest/src/test/java/org/apache/struts2/rest/DefaultHttpHeadersTest.java
index f46a203..57e9d67 100644
--- a/plugins/rest/src/test/java/org/apache/struts2/rest/DefaultHttpHeadersTest.java
+++ b/plugins/rest/src/test/java/org/apache/struts2/rest/DefaultHttpHeadersTest.java
@@ -28,10 +28,7 @@ import org.springframework.mock.web.MockHttpServletResponse;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
-import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST;
-import static javax.servlet.http.HttpServletResponse.SC_CREATED;
-import static javax.servlet.http.HttpServletResponse.SC_NOT_MODIFIED;
-import static javax.servlet.http.HttpServletResponse.SC_OK;
+import static javax.servlet.http.HttpServletResponse.*;
 
 public class DefaultHttpHeadersTest extends TestCase {
     private MockHttpServletResponse mockResponse;
@@ -61,9 +58,9 @@ public class DefaultHttpHeadersTest extends TestCase {
         headers.apply(mockRequest, mockResponse, new Object());
 
         assertEquals(SC_CREATED, mockResponse.getStatus());
-        assertEquals("http://localhost:80/foo/bar/44.xhtml", mockResponse.getHeader("Location"));
+        assertEquals("http://localhost/foo/bar/44.xhtml", mockResponse.getHeader("Location"));
         assertEquals("asdf", mockResponse.getHeader("ETag"));
-        assertEquals(now.getTime(), mockResponse.getHeader("Last-Modified"));
+        assertEquals(String.valueOf(now.getTime()), mockResponse.getHeader("Last-Modified"));
 
     }
 
@@ -73,7 +70,7 @@ public class DefaultHttpHeadersTest extends TestCase {
         mockRequest.setRequestURI("/foo/bar");
 
         headers.apply(mockRequest, mockResponse, new Object());
-        assertEquals("http://localhost:80/foo/bar/44", mockResponse.getHeader("Location"));
+        assertEquals("http://localhost/foo/bar/44", mockResponse.getHeader("Location"));
         assertEquals(SC_CREATED, mockResponse.getStatus());
     }
 

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/plugins/sitegraph/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/sitegraph/pom.xml b/plugins/sitegraph/pom.xml
index 289f7c8..8f6302f 100644
--- a/plugins/sitegraph/pom.xml
+++ b/plugins/sitegraph/pom.xml
@@ -137,6 +137,15 @@
             <scope>test</scope>
         </dependency>
 
+        <!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
+           This is only necessary in tests-->
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.1.0</version>
+            <scope>test</scope>
+        </dependency>
+
     </dependencies>
 
     <reporting>

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/plugins/testng/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/testng/pom.xml b/plugins/testng/pom.xml
index 8b76997..a45a17f 100644
--- a/plugins/testng/pom.xml
+++ b/plugins/testng/pom.xml
@@ -55,6 +55,15 @@
             <scope>provided</scope>
         </dependency>
 
+        <!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
+           This is only necessary in tests-->
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.1.0</version>
+            <scope>test</scope>
+        </dependency>
+
     </dependencies>
     <properties>
     	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

http://git-wip-us.apache.org/repos/asf/struts/blob/243c92bf/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 1437061..bafd12b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -597,7 +597,7 @@
             <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
-                <version>4.8.2</version>
+                <version>4.12</version>
             </dependency>
             <dependency>
                 <groupId>cglib</groupId>