On Mon, Aug 29, 2011 at 9:46 PM, Martijn Dashorst <[email protected]> wrote: > The issue is not the new logic, but rather the change in signature. > PageParameters is not a rarely used class. I understand it is binary incompatible now, but still API compatible > > 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 the repackage step here bothers me. most modern build tools rebuild the code to make the package, but yes I guess there could be such users out there
> your test server. Boom, doesn't work with nosuchmethod error. > > Martijn > > On Mon, Aug 29, 2011 at 9:37 PM, Martin Grigorov <[email protected]> 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 <[email protected]> >> 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 >>> <[email protected]> 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, <[email protected]> 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 > -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com
