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

Reply via email to