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

Reply via email to