Just for completeness, I'm advocating we do this now, but new methods to
interfaces could be added as subinterfaces as in FileContent2 extends
FileContent.

Gary

On Sat, May 7, 2016 at 2:52 AM, sebb <seb...@gmail.com> wrote:

> I have just looked again at the Clirr errors.
>
> Apart from the interface method additions, the changes are:
>
> *) Replacing org.apache.commons.vfs2.provider.tar.TarEntry by
> org.apache.commons.compress.archivers.tar.TarArchiveEntry in several
> places.
>
> TarEntry has been dropped, however the class was package-private so it
> was clearly not part of the public API.
> And likewise, methods using cannot have been part of the API.
>
> *) replacing org.apache.commons.vfs2.provider.tar.TarInputStream by
> org.apache.commons.compress.archivers.tar.TarArchiveInputStream as the
> return type for a couple of methods
>
> Again, TarInputStream has been dropped, and it was also
> package-private. So again the public API must be OK.
>
> So I think we are OK as far as BC is concerned.
>
> Source will need to be updated if it uses any of the interfaces that
> have been updated:
> FileContent
> FileName
> FileObject
> FileSystemManager
> RandomAccessContent
>
> If there may be another 2.x release, we should make sure that the
> interfaces have suitable abstract class implementations that can be
> extended instead of implementing the interface.
> Then external source will only need to be updated once.
>
> Assuming others agree with my analysis, these findings need to be
> documented in the RN.
>
>
> On 7 May 2016 at 06:29, Gary Gregory <garydgreg...@gmail.com> wrote:
> > On Fri, May 6, 2016 at 10:20 PM, Ralph Goers <ralph.go...@dslextreme.com
> >
> > wrote:
> >
> >> That was me. I have had those thoughts and mentioned them a few times
> >> since Java 7 was released. But absolutely no effort has been expended
> to do
> >> it.
> >>
> >> My personal opinion is that I am comfortable with releasing 2.1 with the
> >> issues Gary mentions.  There should have been 10 releases for VFS 2 by
> now.
> >>
> >
> > Well, yeah, RERO would have been great but it was not on high enough on
> my
> > priority list too ;-) The issue we have now would have popped each time
> we
> > wanted to break BC, so we could have gotten a better feel for it with
> RERO
> > and 10 VFS 2.x releases under our belts! But we are stuck with a Big Bang
> > release now.
> >
> > I would request another RC from the RM, and let the community decide by
> > VOTE.
> >
> > Gary
> >
> >>
> >> Ralph
> >>
> >> > On May 6, 2016, at 8:40 PM, Matt Sicker <boa...@gmail.com> wrote:
> >> >
> >> > I thought there were talks about using Java 1.7 APIs in 3.0 that would
> >> > eliminate the need for some classes in commons-vfs, or am I confusing
> >> that
> >> > with another commons project?
> >> >
> >> > On 6 May 2016 at 17:46, Gary Gregory <garydgreg...@gmail.com> wrote:
> >> >
> >> >> OK, I've gone through the Clirr report and fixed the low-hanging
> fruits
> >> in
> >> >> trunk. I think we need another RC. I've also update Apache Commons
> >> Compress
> >> >> and Net to their current versions.
> >> >>
> >> >> Then what we have to live with for 2.1 is BC breaks in two narrower
> >> areas:
> >> >>
> >> >> - Added methods to interfaces.
> >> >> - Changes in the Tar classes from our own Tar classes to Apache
> Commons
> >> >> Compress' Tar classes.
> >> >>
> >> >> That's how good it's going to get for now IMO.
> >> >>
> >> >> I would be perfectly OK with repackaging for 3.0 but then this would
> >> open
> >> >> the door to other changes that folks might want to make. I would be
> OK
> >> with
> >> >> saying this is 3.0 as is in this case.
> >> >>
> >> >> I'm still not 100% comfortable with the BC based on my experience
> with
> >> >> large projects with deep transitive dependencies.
> >> >>
> >> >> If the community VOTEs to release trunk (yes, another RC please) as
> 2.1
> >> >> then I'll live with it. Releasing as 3.0 (as is) would be safe and
> >> >> conservative.
> >> >>
> >> >> Gary
> >> >>
> >> >> On Fri, May 6, 2016 at 3:00 PM, sebb <seb...@gmail.com> wrote:
> >> >>
> >> >>> On 6 May 2016 at 22:40, Gary Gregory <garydgreg...@gmail.com>
> wrote:
> >> >>>> I'm creating a new thread here instead of hijacking the VOTE
> thread.
> >> >>>>
> >> >>>> First, let me express my gratitude to Stian Soiland-Reyes for
> RM'ing a
> >> >>>> release, I'm sure he did not know what he was getting himself into!
> >> ;-)
> >> >>>
> >> >>> Huh? ... that was/is Josh Elser.
> >> >>> Who does (also) deserve many thanks.
> >> >>>
> >> >>>> Part of me writing this here is flushing out for myself, voters,
> and
> >> >>> casual
> >> >>>> observers what it is we are doing ;-)
> >> >>>>
> >> >>>> We have BC breakage in VFS 2.1 RC1 in two areas:
> >> >>>>
> >> >>>> - Adding methods to public interfaces
> >> >>>
> >> >>> AFAIK that is only a SOURCE breakage.
> >> >>>
> >> >>>> - Other stuff like removing fields, changing fields from protected
> to
> >> >>>> private, changing method arg types.
> >> >>>
> >> >>> That does break BC if the objects are part of the public API.
> >> >>>
> >> >>>> Details:
> >> >>>>
> >> >>>
> >> >>
> >>
> https://home.apache.org/~elserj/commons/commons-vfs-2.1/commons-vfs2/clirr-report.html
> >> >>>>
> >> >>>> I see three areas that need consideration:
> >> >>>>
> >> >>>> (0) For simple clients that only use the higher-level interfaces
> and
> >> >>>> methods, there are no problems. So this is a non-issue marker I
> >> >> suppose.
> >> >>>
> >> >>> Whether or not that affects simple clients depends on exactly which
> >> >>> fields and method args have changed. Are they part of the public
> API?
> >> >>> And if so, will simple clients use that part of the API?
> >> >>>
> >> >>>> (1) For advanced clients that get their fingers in deep into VFS,
> they
> >> >>>> break. Example:
> >> >>>>
> >> >>>> - org.apache.commons.vfs2.provider.tar.TarFileObject:
> Accessibility of
> >> >>>> field entry has been weakened from protected to private.
> >> >>>> - org.apache.commons.vfs2.provider.webdav.WebdavFileProvider:
> Removed
> >> >>> field
> >> >>>> AUTHENTICATOR_TYPES
> >> >>>> - and so on.
> >> >>>>
> >> >>>> Remedies for these kinds of breaks are simple and easy: Just change
> >> >> stuff
> >> >>>> back and mark @deprecated in Javadoc and @Deprecated.
> >> >>>>
> >> >>>> (2) For providers, they break unless they extend our root classes
> like
> >> >>>> AbstractFileObject and DefaultFileSystemManager, and use our
> default
> >> >>>> classes like DefaultFileContent.
> >> >>>> For "simple" providers, there probably won't be any issue, but who
> >> >> knows?
> >> >>>> Does anyone have a 2.0 provider?
> >> >>>> For advanced providers that do more of their own thing instead of
> >> >> reusing
> >> >>>> our base classes, then breakage.
> >> >>>>
> >> >>>> It seems to me that we should pick the low-hanging fruits and fix
> the
> >> >>>> simple stuff.
> >> >>>>
> >> >>>> All of this is moot if we were to go to 3.0 now.
> >> >>>
> >> >>> Which would not be source or binary compatible by design.
> >> >>>
> >> >>>> Thoughts?
> >> >>>
> >> >>> The easiest for Commons would obviously be to abandon 2.x and
> release
> >> >> 3.0.
> >> >>> That would be a chance to fix APIs properly.
> >> >>>
> >> >>> However, given the work that Josh has already put into 2.1 that
> seems
> >> >>> a waste of effort if we can either:
> >> >>> - eliminate the BC breaks, OR
> >> >>> - satisfy ourselves that the breaks will not affect (m)any users.
> >> >>>
> >> >>>> Gary
> >> >>>> --
> >> >>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
> >> >>>> Java Persistence with Hibernate, Second Edition
> >> >>>> <http://www.manning.com/bauer3/>
> >> >>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
> >> >>>> Spring Batch in Action <http://www.manning.com/templier/>
> >> >>>> Blog: http://garygregory.wordpress.com
> >> >>>> Home: http://garygregory.com/
> >> >>>> Tweet! http://twitter.com/GaryGregory
> >> >>>
> >> >>>
> ---------------------------------------------------------------------
> >> >>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> >> >>> For additional commands, e-mail: dev-h...@commons.apache.org
> >> >>>
> >> >>>
> >> >>
> >> >>
> >> >> --
> >> >> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
> >> >> Java Persistence with Hibernate, Second Edition
> >> >> <http://www.manning.com/bauer3/>
> >> >> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
> >> >> Spring Batch in Action <http://www.manning.com/templier/>
> >> >> Blog: http://garygregory.wordpress.com
> >> >> Home: http://garygregory.com/
> >> >> Tweet! http://twitter.com/GaryGregory
> >> >>
> >> >
> >> >
> >> >
> >> > --
> >> > Matt Sicker <boa...@gmail.com>
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> >> For additional commands, e-mail: dev-h...@commons.apache.org
> >>
> >>
> >
> >
> > --
> > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
> > Java Persistence with Hibernate, Second Edition
> > <http://www.manning.com/bauer3/>
> > JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
> > Spring Batch in Action <http://www.manning.com/templier/>
> > Blog: http://garygregory.wordpress.com
> > Home: http://garygregory.com/
> > Tweet! http://twitter.com/GaryGregory
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


-- 
E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
Java Persistence with Hibernate, Second Edition
<http://www.manning.com/bauer3/>
JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
Spring Batch in Action <http://www.manning.com/templier/>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Reply via email to