The issue is not the new logic, but rather the change in signature. PageParameters is not a rarely used class.
As for not putting it into production with an existing war... I can see enough reason not to have to recompile a whole codebase for a 1.5.1 upgrade. Instead just upgrade the jar, repackage and deploy to your test server. Boom, doesn't work with nosuchmethod error. Martijn On Mon, Aug 29, 2011 at 9:37 PM, Martin Grigorov <mgrigo...@apache.org> wrote: > I mean remove the new logic in this method, not the whole method > > On Mon, Aug 29, 2011 at 9:37 PM, Martin Grigorov <mgrigo...@apache.org> wrote: >> I would rather remove this method altogether if it is really a problem. >> But who just puts a new .jar in an existing .war and goes in >> production ? This is toooo brave .. I doubt there are such companies >> >> On Mon, Aug 29, 2011 at 9:30 PM, Martijn Dashorst >> <martijn.dasho...@gmail.com> wrote: >>> AFAIK this requires a recompile for folks upgrading from 1.5-RC7 to >>> 1.5-RC8 (or 1.5.0 to 1.5.1). Not very handy. >>> >>> The signature goes from: >>> >>> PageParameters#remove(String) >>> to >>> PageParameters#remove(String, String[]) >>> >>> IMO it is better to add the varargs method, or if it isn't compatible, >>> add a method with signature: >>> remove(String, String, String...) >>> >>> Martijn >>> >>> On Mon, Aug 29, 2011 at 2:48 PM, <mgrigo...@apache.org> wrote: >>>> Author: mgrigorov >>>> Date: Mon Aug 29 12:48:07 2011 >>>> New Revision: 1162772 >>>> >>>> URL: http://svn.apache.org/viewvc?rev=1162772&view=rev >>>> Log: >>>> WICKET-3938 Impossible to remove particular key-value from PageParameters >>>> >>>> >>>> Modified: >>>> >>>> wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/INamedParameters.java >>>> >>>> wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java >>>> >>>> wicket/trunk/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java >>>> >>>> Modified: >>>> wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/INamedParameters.java >>>> URL: >>>> http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/INamedParameters.java?rev=1162772&r1=1162771&r2=1162772&view=diff >>>> ============================================================================== >>>> --- >>>> wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/INamedParameters.java >>>> (original) >>>> +++ >>>> wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/INamedParameters.java >>>> Mon Aug 29 12:48:07 2011 >>>> @@ -72,9 +72,13 @@ public interface INamedParameters >>>> * Removes named parameter with given name. >>>> * >>>> * @param name >>>> + * the name of the parameter to remove >>>> + * @param values >>>> + * values used as criteria. The parameter will be >>>> removed only if its value is equal >>>> + * to any of the criteria. >>>> * @return this >>>> */ >>>> - INamedParameters remove(final String name); >>>> + INamedParameters remove(final String name, String... values); >>>> >>>> /** >>>> * Adds value to named parameter with given name. >>>> >>>> Modified: >>>> wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java >>>> URL: >>>> http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java?rev=1162772&r1=1162771&r2=1162772&view=diff >>>> ============================================================================== >>>> --- >>>> wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java >>>> (original) >>>> +++ >>>> wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java >>>> Mon Aug 29 12:48:07 2011 >>>> @@ -392,7 +392,7 @@ public class PageParameters implements I >>>> /** >>>> * @see >>>> org.apache.wicket.request.mapper.parameter.INamedParameters#remove(java.lang.String) >>>> */ >>>> - public PageParameters remove(final String name) >>>> + public PageParameters remove(final String name, final String... >>>> values) >>>> { >>>> Args.notNull(name, "name"); >>>> >>>> @@ -403,7 +403,21 @@ public class PageParameters implements I >>>> Entry e = i.next(); >>>> if (e.key.equals(name)) >>>> { >>>> - i.remove(); >>>> + if (values != null && >>>> values.length > 0) >>>> + { >>>> + for (String value : values) >>>> + { >>>> + if >>>> (e.value.equals(value)) >>>> + { >>>> + i.remove(); >>>> + break; >>>> + } >>>> + } >>>> + } >>>> + else >>>> + { >>>> + i.remove(); >>>> + } >>>> } >>>> } >>>> } >>>> >>>> Modified: >>>> wicket/trunk/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java >>>> URL: >>>> http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java?rev=1162772&r1=1162771&r2=1162772&view=diff >>>> ============================================================================== >>>> --- >>>> wicket/trunk/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java >>>> (original) >>>> +++ >>>> wicket/trunk/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java >>>> Mon Aug 29 12:48:07 2011 >>>> @@ -109,6 +109,8 @@ public class PageParametersTest extends >>>> >>>> /** >>>> * https://issues.apache.org/jira/browse/WICKET-3938 >>>> + * >>>> + * Remove the parameter by its name >>>> */ >>>> @Test >>>> public void removeParameters() >>>> @@ -123,4 +125,21 @@ public class PageParametersTest extends >>>> parameters.remove("named2"); >>>> assertTrue(parameters.isEmpty()); >>>> } >>>> + >>>> + /** >>>> + * https://issues.apache.org/jira/browse/WICKET-3938 >>>> + * >>>> + * Remove the parameter by its name only if its value is equal to >>>> the criteria >>>> + */ >>>> + @Test >>>> + public void removeParametersByValue() >>>> + { >>>> + PageParameters parameters = new >>>> PageParameters().add("named1", "value1").add("named1", >>>> + "value2"); >>>> + >>>> + assertEquals(2, parameters.getAllNamed().size()); >>>> + >>>> + parameters.remove("named1", "value1"); >>>> + assertEquals("value2", >>>> parameters.get("named1").toString()); >>>> + } >>>> } >>>> >>>> >>>> >>> >>> >>> >>> -- >>> Become a Wicket expert, learn from the best: http://wicketinaction.com >>> >> >> >> >> -- >> Martin Grigorov >> jWeekend >> Training, Consulting, Development >> http://jWeekend.com >> > > > > -- > Martin Grigorov > jWeekend > Training, Consulting, Development > http://jWeekend.com > -- Become a Wicket expert, learn from the best: http://wicketinaction.com