On Jun 14, 2016 7:45 AM, "Matt Benson" <[email protected]> wrote:
>
> On Tue, Jun 14, 2016 at 2:14 AM, Andrey Loskutov <[email protected]> wrote:
>
> > I like the way Eclipse it does for years:
> >
> > 1) Everything inside **/internal/ packages is non API by definition
> > 2) MANIFEST.MF to use OSGI "Export-Package" attribute for "published"
> > packages
> > 3) Javadoc @noextend tag for classes not intended to be extended
> > 4) Javadoc @noimplement tag for interfaces
> >
> > If "real" annotations were used for points 3 and 4, they could live
> alongside a Java (6) Processor that, if the user had annotation processing
> enabled, could fail the build (pretty sure this is doable).
But where do these annotations live? Does each Commons component duplicate
them?
Gary
>
> Matt
>
>
> > A bonus for libraries with correct MANIFEST.MF is that they can be
> > directly used as bundles inside any OSGI container (also Eclipse).
> >
> > Example:
> > /**
> > * An observable value whose changes can be vetoed by listeners.
> > *
> > * @param <T>
> > * the type of value being observed
> > *
> > * @noextend This interface is not intended to be extended by clients.
> > * @noimplement This interface is not intended to be implemented by
> > clients.
> > * Clients should instead subclass one of the classes that
> > * implement this interface. Note that direct implementers
of
> > this
> > * interface outside of the framework will be broken in
future
> > * releases when methods are added to this interface.
> > *
> > * @since 1.0
> > *
> > */
> > public interface IVetoableValue<T> extends IObservableValue<T> {
> >
> > Kind regards,
> > Andrey Loskutov
> >
> > http://google.com/+AndreyLoskutov
> >
> >
> > > Gesendet: Dienstag, 14. Juni 2016 um 09:03 Uhr
> > > Von: "Jörg Schaible" <[email protected]>
> > > An: [email protected]
> > > Betreff: Re: [ALL] About binary compatibility
> > >
> > > Hi,
> > >
> > > James Carman wrote:
> > >
> > > > Agree we should have a "source of truth". Is there something wrong
with
> > > > using an "internal" or "impl" package name? The bundle plugin for
OSGi
> > > > doesn't export these by default, which would be a nice side effect!
:).
> > >
> > > While it is a step in the right direction, a package scoped solution
does
> > > not solve the problem of a public interface that should not be
> > implemented
> > > directly (as we've seen with the BCEL visitor). Time for Java 8 and
its
> > > default implementations ...
> > >
> > > Cheers,
> > > Jörg
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [email protected]
> > For additional commands, e-mail: [email protected]
> >
> >