apilyzer on branch 1.9

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

apilyzer on branch 1.9

Sean Busbey-6
I'm trying out a local change that I don't think changes the public API, but the apilyzer-maven-plugin is failing with a claim that the public API now contains non-public API parameters.

The plugin is correct to flag the class it has a problem with, but I haven't changed the method it's talking about. From what I can tell looking at the configs, I don't understand why it doesn't fail the build all the time.

That class in question is ClientConfiguration:

core/src/main/java/org/apache/accumulo/core/client/ClientConfiguration.java

It extends org.apache.commons.CompositeConfiguration and it overrides several methods that use parameters and exceptions from commons-configuration.

The list of exceptions in core/pom.xml doesn't include anything for commons-configuration.

Am I missing some configuration blurb?
Reply | Threaded
Open this post in threaded view
|

Re: apilyzer on branch 1.9

Christopher Tubbs-2
Apilyzer is configured to ignore deprecated classes. Perhaps that's
the missing puzzle piece? If you have a branch, I could take a look.
On Fri, Sep 21, 2018 at 6:19 PM Sean Busbey <[hidden email]> wrote:

>
> I'm trying out a local change that I don't think changes the public API, but the apilyzer-maven-plugin is failing with a claim that the public API now contains non-public API parameters.
>
> The plugin is correct to flag the class it has a problem with, but I haven't changed the method it's talking about. From what I can tell looking at the configs, I don't understand why it doesn't fail the build all the time.
>
> That class in question is ClientConfiguration:
>
> core/src/main/java/org/apache/accumulo/core/client/ClientConfiguration.java
>
> It extends org.apache.commons.CompositeConfiguration and it overrides several methods that use parameters and exceptions from commons-configuration.
>
> The list of exceptions in core/pom.xml doesn't include anything for commons-configuration.
>
> Am I missing some configuration blurb?
Reply | Threaded
Open this post in threaded view
|

Re: apilyzer on branch 1.9

Sean Busbey-6
Here's the branch:

https://github.com/busbey/accumulo/tree/1.9-update-commons-configuration

The only change is updating commons-configuration from 1.6 to 1.10.



On 2018/09/22 03:07:46, Christopher <[hidden email]> wrote:

> Apilyzer is configured to ignore deprecated classes. Perhaps that's
> the missing puzzle piece? If you have a branch, I could take a look.
> On Fri, Sep 21, 2018 at 6:19 PM Sean Busbey <[hidden email]> wrote:
> >
> > I'm trying out a local change that I don't think changes the public API, but the apilyzer-maven-plugin is failing with a claim that the public API now contains non-public API parameters.
> >
> > The plugin is correct to flag the class it has a problem with, but I haven't changed the method it's talking about. From what I can tell looking at the configs, I don't understand why it doesn't fail the build all the time.
> >
> > That class in question is ClientConfiguration:
> >
> > core/src/main/java/org/apache/accumulo/core/client/ClientConfiguration.java
> >
> > It extends org.apache.commons.CompositeConfiguration and it overrides several methods that use parameters and exceptions from commons-configuration.
> >
> > The list of exceptions in core/pom.xml doesn't include anything for commons-configuration.
> >
> > Am I missing some configuration blurb?
>
Reply | Threaded
Open this post in threaded view
|

Re: apilyzer on branch 1.9

Christopher Tubbs-2
Okay, I took a look.

So, apilyzer is configured to ignore deprecated violations, so we've
explicitly overridden the superclass methods in order to add
@Deprecated to them so they will be ignored. This is better than
adding a specific allowance in the pom.xml, because ultimately, we
want to inform users that these methods shouldn't be used, and once
we've done that, apilyzer is satisfied that we're on the right track
to removing non-public API from our public API. So, we don't need an
explicit exception in the pom.xml.

What appears to be happening here is that 1.10 added some new methods
that we aren't explicitly overridding and adding @Deprecated to. So,
in order to get this to work, we'd have to bring that new method
`Configuration.addConfiguration`, down into our class as an override
and mark it @Deprecated.
On Sat, Sep 22, 2018 at 9:50 AM Sean Busbey <[hidden email]> wrote:

>
> Here's the branch:
>
> https://github.com/busbey/accumulo/tree/1.9-update-commons-configuration
>
> The only change is updating commons-configuration from 1.6 to 1.10.
>
>
>
> On 2018/09/22 03:07:46, Christopher <[hidden email]> wrote:
> > Apilyzer is configured to ignore deprecated classes. Perhaps that's
> > the missing puzzle piece? If you have a branch, I could take a look.
> > On Fri, Sep 21, 2018 at 6:19 PM Sean Busbey <[hidden email]> wrote:
> > >
> > > I'm trying out a local change that I don't think changes the public API, but the apilyzer-maven-plugin is failing with a claim that the public API now contains non-public API parameters.
> > >
> > > The plugin is correct to flag the class it has a problem with, but I haven't changed the method it's talking about. From what I can tell looking at the configs, I don't understand why it doesn't fail the build all the time.
> > >
> > > That class in question is ClientConfiguration:
> > >
> > > core/src/main/java/org/apache/accumulo/core/client/ClientConfiguration.java
> > >
> > > It extends org.apache.commons.CompositeConfiguration and it overrides several methods that use parameters and exceptions from commons-configuration.
> > >
> > > The list of exceptions in core/pom.xml doesn't include anything for commons-configuration.
> > >
> > > Am I missing some configuration blurb?
> >