Author: lukaszlenart Date: Tue Dec 28 20:48:55 2010 New Revision: 1053429 URL: http://svn.apache.org/viewvc?rev=1053429&view=rev Log: Merges branch 2.2.1.1 back to trunk
Modified: struts/struts2/trunk/ (props changed) struts/struts2/trunk/apps/ (props changed) struts/struts2/trunk/apps/jboss-blank/pom.xml struts/struts2/trunk/apps/mailreader/pom.xml struts/struts2/trunk/assembly/ (props changed) struts/struts2/trunk/assembly/pom.xml struts/struts2/trunk/bundles/ (props changed) struts/struts2/trunk/core/pom.xml struts/struts2/trunk/plugins/ (props changed) struts/struts2/trunk/plugins/convention/pom.xml struts/struts2/trunk/plugins/pom.xml struts/struts2/trunk/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionMapper.java struts/struts2/trunk/plugins/rest/src/test/java/org/apache/struts2/rest/RestActionMapperTest.java struts/struts2/trunk/pom.xml struts/struts2/trunk/xwork-core/pom.xml struts/struts2/trunk/xwork-core/test-output/ (props changed) Propchange: struts/struts2/trunk/ ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Tue Dec 28 20:48:55 2010 @@ -0,0 +1,2 @@ +/struts/struts2/branches/STRUTS_2_2_1_1:1037870-1053416 +/struts/struts2/tags/STRUTS_2_2_1:965062-1037869 Propchange: struts/struts2/trunk/apps/ ------------------------------------------------------------------------------ --- svn:ignore (original) +++ svn:ignore Tue Dec 28 20:48:55 2010 @@ -1,7 +1,6 @@ -.classpath -.project -.settings *.ipr -*.iml *.iws +.classpath +.project target +.settings Modified: struts/struts2/trunk/apps/jboss-blank/pom.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/jboss-blank/pom.xml?rev=1053429&r1=1053428&r2=1053429&view=diff ============================================================================== --- struts/struts2/trunk/apps/jboss-blank/pom.xml (original) +++ struts/struts2/trunk/apps/jboss-blank/pom.xml Tue Dec 28 20:48:55 2010 @@ -1,3 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* + * $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. + */ +--> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> Modified: struts/struts2/trunk/apps/mailreader/pom.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/pom.xml?rev=1053429&r1=1053428&r2=1053429&view=diff ============================================================================== --- struts/struts2/trunk/apps/mailreader/pom.xml (original) +++ struts/struts2/trunk/apps/mailreader/pom.xml Tue Dec 28 20:48:55 2010 @@ -44,7 +44,6 @@ <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> - <version>2.4</version> <scope>provided</scope> </dependency> Propchange: struts/struts2/trunk/assembly/ ------------------------------------------------------------------------------ --- svn:ignore (original) +++ svn:ignore Tue Dec 28 20:48:55 2010 @@ -1,9 +1,8 @@ -.classpath -.project -.settings *.ipr -*.iml *.iws -target +.classpath +.project 2.x +target WW +.settings Modified: struts/struts2/trunk/assembly/pom.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/assembly/pom.xml?rev=1053429&r1=1053428&r2=1053429&view=diff ============================================================================== --- struts/struts2/trunk/assembly/pom.xml (original) +++ struts/struts2/trunk/assembly/pom.xml Tue Dec 28 20:48:55 2010 @@ -198,6 +198,7 @@ <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>dependency-maven-plugin</artifactId> + <version>1.0</version> <executions> <execution> <id>copy-war</id> Propchange: struts/struts2/trunk/bundles/ ------------------------------------------------------------------------------ --- svn:ignore (original) +++ svn:ignore Tue Dec 28 20:48:55 2010 @@ -1,6 +1,5 @@ -target -.* -*.iml -*.ipr *.idea +*.ipr *.iws +target +.* Modified: struts/struts2/trunk/core/pom.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/pom.xml?rev=1053429&r1=1053428&r2=1053429&view=diff ============================================================================== --- struts/struts2/trunk/core/pom.xml (original) +++ struts/struts2/trunk/core/pom.xml Tue Dec 28 20:48:55 2010 @@ -210,7 +210,7 @@ <dependency> <groupId>org.apache.struts.xwork</groupId> <artifactId>xwork-core</artifactId> - <version>${version}</version> + <version>${project.version}</version> </dependency> <!--<dependency>--> Propchange: struts/struts2/trunk/plugins/ ------------------------------------------------------------------------------ --- svn:ignore (original) +++ svn:ignore Tue Dec 28 20:48:55 2010 @@ -1,7 +1,6 @@ -.classpath -.project -.settings *.ipr -*.iml *.iws +.classpath +.project target +.settings Modified: struts/struts2/trunk/plugins/convention/pom.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/convention/pom.xml?rev=1053429&r1=1053428&r2=1053429&view=diff ============================================================================== --- struts/struts2/trunk/plugins/convention/pom.xml (original) +++ struts/struts2/trunk/plugins/convention/pom.xml Tue Dec 28 20:48:55 2010 @@ -50,30 +50,25 @@ <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> - <version>3.8.1</version> </dependency> <dependency> <groupId>org.easymock</groupId> <artifactId>easymock</artifactId> - <version>2.4</version> <scope>test</scope> </dependency> <dependency> <groupId>org.easymock</groupId> <artifactId>easymockclassextension</artifactId> - <version>2.4</version> <scope>test</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> - <version>2.4</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jsp-api</artifactId> - <version>2.0</version> <scope>provided</scope> </dependency> </dependencies> Modified: struts/struts2/trunk/plugins/pom.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/pom.xml?rev=1053429&r1=1053428&r2=1053429&view=diff ============================================================================== --- struts/struts2/trunk/plugins/pom.xml (original) +++ struts/struts2/trunk/plugins/pom.xml Tue Dec 28 20:48:55 2010 @@ -80,18 +80,14 @@ <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>compile</scope> - <version>3.8.2</version> </dependency> - <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> - <version>2.4</version> <scope>provided</scope> </dependency> - </dependencies> <reporting> Modified: struts/struts2/trunk/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionMapper.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionMapper.java?rev=1053429&r1=1053428&r2=1053429&view=diff ============================================================================== --- struts/struts2/trunk/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionMapper.java (original) +++ struts/struts2/trunk/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionMapper.java Tue Dec 28 20:48:55 2010 @@ -109,6 +109,7 @@ public class RestActionMapper extends De private String optionsMethodName = "options"; private String postContinueMethodName = "createContinue"; private String putContinueMethodName = "updateContinue"; + private boolean allowDynamicMethodCalls = true; public RestActionMapper() { } @@ -172,6 +173,11 @@ public class RestActionMapper extends De this.putContinueMethodName = putContinueMethodName; } + @Inject(required = false, value = StrutsConstants.STRUTS_ENABLE_DYNAMIC_METHOD_INVOCATION) + public void setAllowDynamicMethodCalls(String allowDynamicMethodCalls) { + this.allowDynamicMethodCalls = "true".equalsIgnoreCase(allowDynamicMethodCalls); + } + public ActionMapping getMapping(HttpServletRequest request, ConfigurationManager configManager) { ActionMapping mapping = new ActionMapping(); @@ -191,12 +197,7 @@ public class RestActionMapper extends De } // handle "name!method" convention. - String name = mapping.getName(); - int exclamation = name.lastIndexOf("!"); - if (exclamation != -1) { - mapping.setName(name.substring(0, exclamation)); - mapping.setMethod(name.substring(exclamation + 1)); - } + handleDynamicMethodInvocation(mapping, mapping.getName()); String fullName = mapping.getName(); // Only try something if the action name is specified @@ -204,7 +205,7 @@ public class RestActionMapper extends De // cut off any ;jsessionid= type appendix but allow the rails-like ;edit int scPos = fullName.indexOf(';'); - if (scPos > -1 && !"edit".equals(fullName.substring(scPos+1))) { + if (scPos > -1 && !"edit".equals(fullName.substring(scPos + 1))) { fullName = fullName.substring(0, scPos); } @@ -215,11 +216,11 @@ public class RestActionMapper extends De // fun trickery to parse 'actionName/id/methodName' in the case of 'animals/dog/edit' int prevSlashPos = fullName.lastIndexOf('/', lastSlashPos - 1); if (prevSlashPos > -1) { - mapping.setMethod(fullName.substring(lastSlashPos+1)); + mapping.setMethod(fullName.substring(lastSlashPos + 1)); fullName = fullName.substring(0, lastSlashPos); lastSlashPos = prevSlashPos; } - id = fullName.substring(lastSlashPos+1); + id = fullName.substring(lastSlashPos + 1); } @@ -293,7 +294,19 @@ public class RestActionMapper extends De return mapping; } - + + private void handleDynamicMethodInvocation(ActionMapping mapping, String name) { + int exclamation = name.lastIndexOf("!"); + if (exclamation != -1) { + mapping.setName(name.substring(0, exclamation)); + if (allowDynamicMethodCalls) { + mapping.setMethod(name.substring(exclamation + 1)); + } else { + mapping.setMethod(null); + } + } + } + /** * Parses the name and namespace from the uri. Uses the configured package * namespaces to determine the name and id parameter, to be parsed later. Modified: struts/struts2/trunk/plugins/rest/src/test/java/org/apache/struts2/rest/RestActionMapperTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/rest/src/test/java/org/apache/struts2/rest/RestActionMapperTest.java?rev=1053429&r1=1053428&r2=1053429&view=diff ============================================================================== --- struts/struts2/trunk/plugins/rest/src/test/java/org/apache/struts2/rest/RestActionMapperTest.java (original) +++ struts/struts2/trunk/plugins/rest/src/test/java/org/apache/struts2/rest/RestActionMapperTest.java Tue Dec 28 20:48:55 2010 @@ -35,6 +35,7 @@ public class RestActionMapperTest extend private ConfigurationManager configManager; private Configuration config; private MockHttpServletRequest req; + private String allowDynamicMethodInvocation = "true"; protected void setUp() throws Exception { super.setUp(); @@ -89,7 +90,7 @@ public class RestActionMapperTest extend assertEquals("/animals", mapping.getNamespace()); assertEquals("dog", mapping.getName()); assertEquals("destroy", mapping.getMethod()); - assertEquals("fido", ((String[])mapping.getParams().get("id"))[0]); + assertEquals("fido", ((String[]) mapping.getParams().get("id"))[0]); } public void testPutMapping() throws Exception { @@ -102,7 +103,7 @@ public class RestActionMapperTest extend assertEquals("/animals", mapping.getNamespace()); assertEquals("dog", mapping.getName()); assertEquals("update", mapping.getMethod()); - assertEquals("fido", ((String[])mapping.getParams().get("id"))[0]); + assertEquals("fido", ((String[]) mapping.getParams().get("id"))[0]); } public void testGetIdMapping() throws Exception { @@ -115,7 +116,7 @@ public class RestActionMapperTest extend assertEquals("/animals", mapping.getNamespace()); assertEquals("dog", mapping.getName()); assertEquals("show", mapping.getMethod()); - assertEquals("fido", ((String[])mapping.getParams().get("id"))[0]); + assertEquals("fido", ((String[]) mapping.getParams().get("id"))[0]); } public void testNewMapping() throws Exception { @@ -139,7 +140,7 @@ public class RestActionMapperTest extend assertEquals("/animals", mapping.getNamespace()); assertEquals("dog", mapping.getName()); - assertEquals("fido", ((String[])mapping.getParams().get("id"))[0]); + assertEquals("fido", ((String[]) mapping.getParams().get("id"))[0]); assertEquals("edit", mapping.getMethod()); } @@ -152,7 +153,7 @@ public class RestActionMapperTest extend assertEquals("/animals", mapping.getNamespace()); assertEquals("dog", mapping.getName()); - assertEquals("fido", ((String[])mapping.getParams().get("id"))[0]); + assertEquals("fido", ((String[]) mapping.getParams().get("id"))[0]); assertEquals("edit", mapping.getMethod()); } @@ -165,7 +166,7 @@ public class RestActionMapperTest extend assertEquals("/animals", mapping.getNamespace()); assertEquals("dog", mapping.getName()); - assertEquals("fido", ((String[])mapping.getParams().get("id"))[0]); + assertEquals("fido", ((String[]) mapping.getParams().get("id"))[0]); assertEquals("show", mapping.getMethod()); } @@ -175,23 +176,79 @@ public class RestActionMapperTest extend tryUri("foo", "", "foo"); tryUri("/", "/", ""); } - + public void testParseNameAndNamespaceWithNamespaces() { tryUri("/my/foo/23", "/my", "foo/23"); tryUri("/my/foo/", "/my", "foo/"); } - + public void testParseNameAndNamespaceWithEdit() { tryUri("/my/foo/23;edit", "/my", "foo/23;edit"); } + + public void testShouldAllowExclamation() throws Exception { + req.setRequestURI("/myapp/animals/dog/fido!edit"); + req.setServletPath("/animals/dog/fido!edit"); + req.setMethod("GET"); + + ActionMapping mapping = mapper.getMapping(req, configManager); + + assertEquals("/animals", mapping.getNamespace()); + assertEquals("dog", mapping.getName()); + assertEquals("fido", ((String[])mapping.getParams().get("id"))[0]); + assertEquals("edit", mapping.getMethod()); + } + + public void testShouldBlockDynamicMethodInvocationAnsUseShow() throws Exception { + req.setRequestURI("/myapp/animals/dog/fido!edit"); + req.setServletPath("/animals/dog/fido!edit"); + req.setMethod("GET"); + + mapper.setAllowDynamicMethodCalls("false"); + ActionMapping mapping = mapper.getMapping(req, configManager); + + assertEquals("/animals", mapping.getNamespace()); + assertEquals("dog", mapping.getName()); + assertEquals("fido", ((String[])mapping.getParams().get("id"))[0]); + assertEquals("show", mapping.getMethod()); + } + + public void testShouldBlockDynamicMethodInvocationAnsUseDestroy() throws Exception { + req.setRequestURI("/myapp/animals/dog/fido!destroy"); + req.setServletPath("/animals/dog/fido!destroy"); + req.setMethod("DELETE"); + + mapper.setAllowDynamicMethodCalls("false"); + ActionMapping mapping = mapper.getMapping(req, configManager); + + assertEquals("/animals", mapping.getNamespace()); + assertEquals("dog", mapping.getName()); + assertEquals("fido", ((String[])mapping.getParams().get("id"))[0]); + assertEquals("destroy", mapping.getMethod()); + } + + public void testShouldBlockDynamicMethodInvocationAndUseUpdate() throws Exception { + req.setRequestURI("/myapp/animals/dog/fido!update"); + req.setServletPath("/animals/dog/fido!update"); + req.setMethod("PUT"); + + mapper.setAllowDynamicMethodCalls("false"); + ActionMapping mapping = mapper.getMapping(req, configManager); + + assertEquals("/animals", mapping.getNamespace()); + assertEquals("dog", mapping.getName()); + assertEquals("fido", ((String[])mapping.getParams().get("id"))[0]); + assertEquals("update", mapping.getMethod()); + } private void tryUri(String uri, String expectedNamespace, String expectedName) { ActionMapping mapping = new ActionMapping(); + mapper.setAllowDynamicMethodCalls(allowDynamicMethodInvocation); mapper.parseNameAndNamespace(uri, mapping, configManager); assertEquals(expectedName, mapping.getName()); assertEquals(expectedNamespace, mapping.getNamespace()); } - + public void testOptionsMapping() throws Exception { req.setRequestURI("/myapp/animals/dog"); req.setServletPath("/animals/dog"); @@ -203,7 +260,7 @@ public class RestActionMapperTest extend assertEquals("dog", mapping.getName()); assertEquals("options", mapping.getMethod()); } - + public void testPostContinueMapping() throws Exception { req.setRequestURI("/myapp/animals/dog"); req.setServletPath("/animals/dog"); @@ -216,7 +273,7 @@ public class RestActionMapperTest extend assertEquals("dog", mapping.getName()); assertEquals("createContinue", mapping.getMethod()); } - + public void testPutContinueMapping() throws Exception { req.setRequestURI("/myapp/animals/dog/fido"); req.setServletPath("/animals/dog/fido"); @@ -228,7 +285,23 @@ public class RestActionMapperTest extend assertEquals("/animals", mapping.getNamespace()); assertEquals("dog", mapping.getName()); assertEquals("updateContinue", mapping.getMethod()); - assertEquals("fido", ((String[])mapping.getParams().get("id"))[0]); + assertEquals("fido", ((String[]) mapping.getParams().get("id"))[0]); + } + + public void testDynamicMethodInvocation() throws Exception { + // given + req.setRemoteAddr("/myapp/animals/dog/23!edit"); + req.setServletPath("/animals/dog/23!edit"); + req.setMethod("GET"); + + // when + ActionMapping actionMapping = mapper.getMapping(req, configManager); + + // then + assertEquals("dog", actionMapping.getName()); + assertEquals("edit", actionMapping.getMethod()); + assertEquals("/animals", actionMapping.getNamespace()); + assertEquals("23", ((String[]) actionMapping.getParams().get("id"))[0]); } } Modified: struts/struts2/trunk/pom.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/pom.xml?rev=1053429&r1=1053428&r2=1053429&view=diff ============================================================================== --- struts/struts2/trunk/pom.xml (original) +++ struts/struts2/trunk/pom.xml Tue Dec 28 20:48:55 2010 @@ -1,10 +1,10 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <parent> - <groupId>org.apache.struts</groupId> - <artifactId>struts-master</artifactId> - <version>7</version> - </parent> + <parent> + <groupId>org.apache.struts</groupId> + <artifactId>struts-master</artifactId> + <version>8</version> + </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.struts</groupId> @@ -155,13 +155,13 @@ </plugin> <plugin> <artifactId>maven-site-plugin</artifactId> - <version>2.0-beta-7</version> + <version>2.1.1</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> - <source>1.5</source> - <target>1.5</target> + <source>1.5</source> + <target>1.5</target> </configuration> </plugin> <plugin> @@ -178,35 +178,48 @@ </configuration> </plugin> <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-release-plugin</artifactId> - <configuration> - <preparationGoals>clean verify install</preparationGoals> - </configuration> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-war-plugin</artifactId> + <version>2.1</version> </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <version>2.1.0</version> + </plugin> + </plugins> </pluginManagement> <plugins> <plugin> - <artifactId>maven-jar-plugin</artifactId> - <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.felix</groupId> - <artifactId>maven-bundle-plugin</artifactId> - <executions> - <execution> - <id>bundle-manifest</id> - <phase>process-classes</phase> - <goals> - <goal>manifest</goal> - </goals> - </execution> - </executions> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-release-plugin</artifactId> + <version>2.1</version> + <configuration> + <releaseProfiles>release</releaseProfiles> + <goals>deploy</goals> + </configuration> + </plugin> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <executions> + <execution> + <id>bundle-manifest</id> + <phase>process-classes</phase> + <goals> + <goal>manifest</goal> + </goals> + </execution> + </executions> </plugin> <!-- <plugin> @@ -291,7 +304,7 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> - </plugin> + </plugin> <plugin> <artifactId>maven-javadoc-plugin</artifactId> <version>2.2</version> @@ -341,23 +354,56 @@ </reporting> <dependencyManagement> - <dependencies> - <dependency> - <groupId>org.apache.struts</groupId> - <artifactId>struts-annotations</artifactId> - <version>1.0.5</version> - <scope>compile</scope> - <optional>true</optional> - </dependency> - </dependencies> - </dependencyManagement> + <dependencies> + <dependency> + <groupId>org.apache.struts</groupId> + <artifactId>struts-annotations</artifactId> + <version>1.0.5</version> + <scope>compile</scope> + <optional>true</optional> + </dependency> + + <dependency> + <groupId>javassist</groupId> + <artifactId>javassist</artifactId> + <version>3.8.0.GA</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.8.2</version> + </dependency> + + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymock</artifactId> + <version>2.4</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymockclassextension</artifactId> + <version>2.4</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + <version>2.4</version> + <scope>provided</scope> + </dependency> + + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>jsp-api</artifactId> + <version>2.0</version> + <scope>provided</scope> + </dependency> - <dependencies> - <dependency> - <groupId>javassist</groupId> - <artifactId>javassist</artifactId> - <version>3.8.0.GA</version> - <scope>test</scope> - </dependency> - </dependencies> + </dependencies> + </dependencyManagement> </project> Modified: struts/struts2/trunk/xwork-core/pom.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/pom.xml?rev=1053429&r1=1053428&r2=1053429&view=diff ============================================================================== --- struts/struts2/trunk/xwork-core/pom.xml (original) +++ struts/struts2/trunk/xwork-core/pom.xml Tue Dec 28 20:48:55 2010 @@ -103,8 +103,14 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> - <version>2.4.2</version> + <version>2.6</version> <configuration> + <properties> + <property> + <name>maven.testng.output.dir</name> + <value>${project.basedir}/target/surefire-reports</value> + </property> + </properties> <useSystemClassLoader>false</useSystemClassLoader> <additionalClasspathElements> <element>${project.build.testOutputDirectory}/xwork-jar.jar</element> @@ -129,6 +135,7 @@ <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>cobertura-maven-plugin</artifactId> + <version>2.4</version> <executions> <execution> <goals> @@ -343,7 +350,7 @@ <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> - <version>4.5</version> + <scope>compile</scope> <optional>true</optional> </dependency> Propchange: struts/struts2/trunk/xwork-core/test-output/ ------------------------------------------------------------------------------ svn:mergeinfo =