Please look at https://github.com/apache/commons-lang/pull/165/files 
<https://github.com/apache/commons-lang/pull/165/files> for the suggested 
javadoc changes.

regards,
chas

> On Jun 12, 2016, at 6:18 PM, Charles Honton <c...@honton.org> wrote:
> 
> No, these are the interfaces that the end user should use.  (but not 
> implement)
> 
>> On Jun 12, 2016, at 6:10 PM, dbrosIus <dbros...@baybroadband.net> wrote:
>> 
>> +1 better now than latter
>> 
>> -------- Original message --------
>> From: Gary Gregory <garydgreg...@gmail.com <mailto:garydgreg...@gmail.com>> 
>> Date: 06/12/2016  8:56 PM  (GMT-05:00) 
>> To: Commons Developers List <dev@commons.apache.org 
>> <mailto:dev@commons.apache.org>> 
>> Subject: Re: [lang] Time Package: Binary Breaking Changes Between 3.4 and 
>> Master 
>> 
>> Should these be package private then?
>> 
>> G
>> On Jun 12, 2016 5:32 PM, "Charles Honton" <c...@honton.org 
>> <mailto:c...@honton.org>> wrote:
>> 
>>> DateParser and DatePrinter interfaces are not just for internal use.  I
>>> will gladly add javadoc to the effect that end users are not expected to
>>> implement these interfaces and that methods may be added in any release.
>>> 
>>> I think you are correct about this being a source incompatibility rather
>>> than a binary incompatibility.  So, if a developer has implemented this
>>> interface and published the class; and another developer uses the new
>>> method against this older published class, then a LinkageError will be
>>> thrown.
>>> 
>>> In my mind, this makes the compatibility issue even less of a concern.
>>> 
>>> regards,
>>> chas
>>> 
>>>> On Jun 12, 2016, at 5:09 PM, sebb <seb...@gmail.com 
>>>> <mailto:seb...@gmail.com>> wrote:
>>>> 
>>>> On 13 June 2016 at 01:00, Charles Honton <c...@honton.org 
>>>> <mailto:c...@honton.org>> wrote:
>>>>> I added DateParser and DatePrinter interfaces in 3.2.  These are not
>>> expected to be implemented by end users, only by
>>> org.apache.commons.lang3.time classes.
>>>> 
>>>> However the Javadoc does not warn people not to implement the interfaces.
>>>> 
>>>> In future such internal interfaces should probably be added to a
>>>> .internal package, as well as being documented as for internal use
>>>> only
>>>> 
>>>>> The interfaces exist to hide the actual implementation classes.  Please
>>> look at FastDateFormat javadoc for the factory pattern that developers use
>>> to obtain an instance of DateParser or DatePrinter.
>>>>> 
>>>>> I should have added an @since marker in Lang-1154.  I‘ll add @since 3.5
>>> marker to the added method.
>>>>> 
>>>>> Yes, binary compatibility is broken if we expect some non-apache code
>>> to implement this interface.
>>>> 
>>>> No, binary compat is not broken when methods are added to an
>>>> interface, but source compat will be.
>>>> 
>>>>> No, I do not expect non-apache code to implement this interface.
>>>>> 
>>>>> I ask that  Lang-1154 not be reverted.
>>>>> 
>>>>> regards
>>>>> chas
>>>>> 
>>>>>> On Jun 12, 2016, at 7:43 AM, Gary Gregory <garydgreg...@gmail.com 
>>>>>> <mailto:garydgreg...@gmail.com>>
>>> wrote:
>>>>>> 
>>>>>> On Jun 12, 2016 4:25 AM, "Benedikt Ritter" <brit...@apache.org 
>>>>>> <mailto:brit...@apache.org>> wrote:
>>>>>>> 
>>>>>>> Hi,
>>>>>>> 
>>>>>>> I think we should simply revert LANG-1154. It has broken several
>>> classes
>>>>>>> and blocks a release. We can discuss how to implement the requirement
>>>>>>> described in LANG-1154 after 3.5.
>>>>>> 
>>>>>> +1 and RERO.
>>>>>> 
>>>>>> Gary
>>>>>> 
>>>>>>> 
>>>>>>> Benedikt
>>>>>>> 
>>>>>>> sebb <seb...@gmail.com <mailto:seb...@gmail.com>> schrieb am So., 12. 
>>>>>>> Juni 2016 um 13:22 Uhr:
>>>>>>> 
>>>>>>>> On 12 June 2016 at 08:41, Pascal Schumacher <
>>> pascalschumac...@gmx.net <mailto:pascalschumac...@gmx.net>>
>>>>>>>> wrote:
>>>>>>>>> Hello everybody,
>>>>>>>>> 
>>>>>>>>> as I understand it lang is currently not in releasable state. Clirr
>>>>>>>> reports
>>>>>>>>> these errors:
>>>>>>>>> 
>>>>>>>>> [ERROR] 7012: org.apache.commons.lang3.time.DateParser: Method
>>> 'public
>>>>>>>>> boolean parse(java.lang.String, java.text.ParsePosition,
>>>>>>>>> java.util.Calendar)' added to Interface
>>>>>>>> 
>>>>>>>> Doesn't have @since marker...
>>>>>>>> 
>>>>>>>> Also it seems a strange method to add to the interface.
>>>>>>>> Maybe it could just be dropped from the interface?
>>>>>>>> 
>>>>>>>>> [ERROR] 7012: org.apache.commons.lang3.time.DatePrinter: Methode
>>>>>> 'public
>>>>>>>>> java.lang.Appendable format(long, java.lang.Appendable)' added to
>>>>>>>> Interface
>>>>>>>>> [ERROR] 7012: org.apache.commons.lang3.time.DatePrinter: Methode
>>>>>> 'public
>>>>>>>>> java.lang.Appendable format(java.util.Date, java.lang.Appendable)'
>>>>>> added
>>>>>>>> to
>>>>>>>>> Interface
>>>>>>>>> [ERROR] 7012: org.apache.commons.lang3.time.DatePrinter: Methode
>>>>>> 'public
>>>>>>>>> java.lang.Appendable format(java.util.Calendar,
>>> java.lang.Appendable)'
>>>>>>>> added
>>>>>>>>> to Interface
>>>>>>>> 
>>>>>>>> Interface method additions break source compatibility, not binary
>>>>>> compat.
>>>>>>>> 
>>>>>>>> There's no default abstract implementation of the interface, so it is
>>>>>>>> possible that end users may have implemented the interface.
>>>>>>>> If that seems very unlikely we could just document the change.
>>>>>>>> 
>>>>>>>> Or the additions could go into a separate interface or subinterface
>>>>>>>> (this tends to get messy).
>>>>>>>> 
>>>>>>>> Or the code could be updated to Java 8, which allows interfaces to
>>>>>>>> have implementations.
>>>>>>>> 
>>>>>>>>> [ERROR] 7005: org.apache.commons.lang3.time.FastDatePrinter:
>>> Parameter
>>>>>>>> type
>>>>>>>>> 2 changed from 'protected java.lang.StringBuffer
>>>>>>>>> applyRules(java.util.Calendar, java. lang.StringBuffer)' to
>>>>>>>>> java.lang.Appendable
>>>>>>>>> [ERROR] 7006: org.apache.commons.lang3.time.FastDatePrinter: Return
>>>>>> type
>>>>>>>> of
>>>>>>>>> method 'protected java.lang.StringBuffer
>>>>>> applyRules(java.util.Calendar,
>>>>>>>>> java.lang.StringBuffer)' changed to java.lang.Appendable
>>>>>>>> 
>>>>>>>> This could be fixed by adding a new method with a new name and
>>>>>>>> deprecating the old method.
>>>>>>>> 
>>>>>>>> This does affect binary compat.
>>>>>>>> 
>>>>>>>>> Any ideas on how to fix this?
>>>>>>>>> 
>>>>>>>>> Thanks,
>>>>>>>>> 
>>>>>>>>> Pascal
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>> ---------------------------------------------------------------------
>>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org 
>>>>>>>>> <mailto:dev-unsubscr...@commons.apache.org>
>>>>>>>>> For additional commands, e-mail: dev-h...@commons.apache.org 
>>>>>>>>> <mailto:dev-h...@commons.apache.org>
>>>>>>>>> 
>>>>>>>> 
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org 
>>>>>>>> <mailto:dev-unsubscr...@commons.apache.org>
>>>>>>>> For additional commands, e-mail: dev-h...@commons.apache.org 
>>>>>>>> <mailto:dev-h...@commons.apache.org>
>>>>>>>> 
>>>>>>>> 
>>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org 
>>>> <mailto:dev-unsubscr...@commons.apache.org>
>>>> For additional commands, e-mail: dev-h...@commons.apache.org 
>>>> <mailto:dev-h...@commons.apache.org>
>>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org 
>>> <mailto:dev-unsubscr...@commons.apache.org>
>>> For additional commands, e-mail: dev-h...@commons.apache.org 
>>> <mailto:dev-h...@commons.apache.org>

Reply via email to