On Mon, Aug 29, 2011 at 10:16 PM, Bruno Borges <[email protected]> wrote:
> Z version increases are always seen as bug fixes... Without *any* API break.
There is no API break in this commit.
The change is API compatible, but binary incompatible, so you cant
just put the new wicket-request.jar in your .war#WEB-INF/lib/ and go
without recompiling.
>
> Bugs may appear and one should not just update the jar and move to
> production, but things like class not found, no such method and so on, are
> simply not acceptable.
>
> A user may just update the jar that states a bug fix in its changelog, runs
> it in development (without recompiling) to check if the bug is really fixed
> in one particular use case and then move to production.
I truly believe there are no such developers that take versionX of
their product, put a new .jar in it and release it as versionY without
adding their own feature, fixing their own bug or run their tests. All
of these involve recompiling.

I personally wasn't aware of PageParameters#remove(String) before this
ticket so I believe it is not wildly used.
But if you think that it should be reverted/reimplemented then I will do it.
>
>
> *Bruno Borges*
> (21) 7672-7099
> *www.brunoborges.com*
>
>
>
> On Mon, Aug 29, 2011 at 4: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.
>>
>> 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 <[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