Bug 803737 - Ensure stability of CLI's remote API across releases with animal-sniffer plug-in
Summary: Ensure stability of CLI's remote API across releases with animal-sniffer plug-in
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: JBoss Operations Network
Classification: JBoss
Component: CLI
Version: JON 3.1.1
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: JON 3.1.2
Assignee: RHQ Project Maintainer
QA Contact: Mike Foley
URL:
Whiteboard:
Depends On:
Blocks: 873866
TreeView+ depends on / blocked
 
Reported: 2012-03-15 14:31 UTC by Mike Foley
Modified: 2013-03-04 21:37 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-03-04 21:37:12 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Mike Foley 2012-03-15 14:31:20 UTC
Description of problem:  Ensure stability of CLI's remote API across releases with animal-sniffer plug-in

We want the remote API to remain stable across releases so we don't break customer CLI scripts or Java remote clients.  There may be some types of API changes that are OK (adding methods, overloading methods, adding objects) ... 

Consider adding this plug-in in Jenkins to alert the team of these breaking changes


http://mojo.codehaus.org/animal-sniffer-maven-plugin/

Comment 1 Mike Foley 2012-03-19 16:19:01 UTC
per BZ triage (asantos, ccrouch, loleary, mfoley)

Comment 2 Mike Foley 2012-04-02 15:39:52 UTC
https://bugzilla.redhat.com/show_bug.cgi?id=807416  is an example of where this could have prevented

Comment 3 Mike Foley 2012-04-02 15:50:19 UTC
the priority is to make sure the API does not change in the 3.1

Comment 8 Charles Crouch 2012-08-20 12:53:24 UTC
https://bugzilla.redhat.com/show_bug.cgi?id=849192 covers resolving this issue for the AS5 plugin

Comment 10 Stefan Negrea 2012-08-21 18:41:26 UTC
  <difference binseverity="ERROR" srcseverity="ERROR" class="org.rhq.modules.plugins.jbossas7.IspnCContainerComponent">Class org.rhq.modules.plugins.jbossas7.IspnCContainerComponent removed</difference>
  <difference binseverity="ERROR" srcseverity="ERROR" class="org.rhq.modules.plugins.jbossas7.IspnCacheComponent">Class org.rhq.modules.plugins.jbossas7.IspnCacheComponent removed</difference>
  <difference binseverity="ERROR" srcseverity="ERROR" class="org.rhq.modules.plugins.jbossas7.IspnComponent">Class org.rhq.modules.plugins.jbossas7.IspnComponent removed</difference>
  <difference binseverity="ERROR" srcseverity="ERROR" class="org.rhq.modules.plugins.jbossas7.ThreadPoolComponent">Class org.rhq.modules.plugins.jbossas7.ThreadPoolComponent removed</difference>
  <difference binseverity="ERROR" srcseverity="ERROR" class="org.rhq.modules.plugins.jbossas7.ThreadsComponent">Class org.rhq.modules.plugins.jbossas7.ThreadsComponent removed</difference>


This set of differences is due to improvements on handling resources with templates in a generic way. The specific functionality was consolidated into TemplatedComponent and TemplatedSubResourcesComponent. 

Also, with respect to Infinispan (Ispn* classes), these classes are not used by the JDG plugin. The only class used by the JDG plugin from the AS7 plugin is SubsystemDiscovery, which was not changed as part of this templated component consolidation.

Comment 11 Stefan Negrea 2012-08-21 18:48:04 UTC
 <difference binseverity="ERROR" srcseverity="ERROR" class="org.rhq.modules.plugins.jbossas7.WebservicesComponent">Class org.rhq.modules.plugins.jbossas7.WebservicesComponent removed</difference>


WebservicesComponent class was removed from AS7 plugin because it was extending BaseComponent but it did not have any overrides or changes over the base class. The Webservices subsystem is a simple subsystem that can be managed through the generic BaseComponent class. No functionality changed by removing the class but it's removal reduced complexity and number of classes to update and test.

Comment 13 Lukas Krejci 2012-09-13 11:58:04 UTC
Changes were added to master to trigger an API check by passing the "signature-check-base-version" property to the maven build. The value of this property should be the version of the RHQ maven artifacts to check against.

The commits implementing this in master: 
http://git.fedorahosted.org/cgit/rhq/rhq.git/diff/?id=d30f869055c15e1f5539d91dddc4b14d224cf490
http://git.fedorahosted.org/cgit/rhq/rhq.git/diff/?id=cc51a3cb86e68c5ef4e56bf1a2972c6f5c1a70db

Comment 14 Lukas Krejci 2012-09-25 12:14:46 UTC
Two additional commits adding the ignore rules and changes to the build to enable automatic api checking:

http://git.fedorahosted.org/cgit/rhq/rhq.git/diff/?id=8cdbab3e33cbeb42ce8ef30a863c9d5e3420bd80, 
http://git.fedorahosted.org/cgit/rhq/rhq.git/diff/?id=dad63bee36143bd4619e62c924cf34b0d65f4f8e

Note that we still lack 2 things for this to be in JON:

1) Ignore rules (or API fixes) for the AS7 plugin so that the API check actually completes successfully.
2) Cherry pick the changes over to the JON 3.1.2 branch
3) Modify the internal CI builds to produce the API report from the previous JON version.

Comment 16 Lukas Krejci 2012-11-08 13:01:04 UTC
master http://git.fedorahosted.org/cgit/rhq/rhq.git/diff/?id=3c42d61f9fce165cbaf6115e3a49b01b9d7dc2c7
Author: Lukas Krejci <lkrejci>
Date:   Thu Nov 8 12:34:24 2012 +0100

    [BZ 803737] - Bumping Clirr maven plugin version to 2.5. No need for the patched version to do the API checks anymore.

Comment 17 Lukas Krejci 2012-11-13 10:35:27 UTC
Cherry-picked all the above commits into the release branch as the following:

release/jon3.1.x http://git.fedorahosted.org/cgit/rhq/rhq.git/diff/?id=dadd71ce90aff5219ebe588cfb7da7e250611f61
Author: Lukas Krejci <lkrejci>
Date:   Thu Nov 8 12:34:24 2012 +0100

    [BZ 803737] - Bumping Clirr maven plugin version to 2.5. No need for the patched version to do the API checks anymore.
    (cherry picked from commit 3c42d61f9fce165cbaf6115e3a49b01b9d7dc2c7)

release/jon3.1.x http://git.fedorahosted.org/cgit/rhq/rhq.git/diff/?id=6ac9c411550a514b07d9147ebc3b0241aea5479b
Author: Stefan Negrea <snegrea>
Date:   Wed Sep 26 15:25:54 2012 -0500

    [BZ 803737] Update difference type.
    (cherry picked from commit c39e2fabda3fd6629df9cf9d7045bb15dd54e78e)

release/jon3.1.x http://git.fedorahosted.org/cgit/rhq/rhq.git/diff/?id=3a1d9c66823c2a705959f5a62d7891c9c764e360
Author: Stefan Negrea <snegrea>
Date:   Wed Sep 26 14:38:59 2012 -0500

    [BZ 803737] - Update the ignore rules for AS7 plugin to use path expressions for class names.
    (cherry picked from commit d891b56fa5275ed36d1e7be303d2aa98f5150f3f)

release/jon3.1.x http://git.fedorahosted.org/cgit/rhq/rhq.git/diff/?id=2950a63cc9526185be97c2f17dc357a62c1d523e
Author: Stefan Negrea <snegrea>
Date:   Wed Sep 26 11:24:39 2012 -0500

    [BZ 803737] - Adding the ignore rules for intentional API changes in AS7 plugin.
    (cherry picked from commit 463e7a7994b95b9533891960a9d4a0e5dc46a2aa)

release/jon3.1.x http://git.fedorahosted.org/cgit/rhq/rhq.git/diff/?id=65b0fd49388e987db49687a978a12fa98056cd3c
Author: Lukas Krejci <lkrejci>
Date:   Thu Sep 20 15:28:13 2012 +0200

    [BZ 803737] - Adding the ignore rules for intentional API changes (apart from AS7 plugin that I leave for other to investigate and fill in).
    (cherry picked from commit dad63bee36143bd4619e62c924cf34b0d65f4f8e)

release/jon3.1.x http://git.fedorahosted.org/cgit/rhq/rhq.git/diff/?id=f4d9e9c5c847bd119abb37a7d8d4a5878f99f02f
Author: Lukas Krejci <lkrejci>
Date:   Fri Sep 21 14:46:44 2012 +0200

    [BZ 803737] - Adding API difference justification for code change introduced
    by commit bf4b25f421769909e886eb42f7b99c66b207b200.
    (cherry picked from commit 8cdbab3e33cbeb42ce8ef30a863c9d5e3420bd80)

release/jon3.1.x http://git.fedorahosted.org/cgit/rhq/rhq.git/diff/?id=8cf062e5267155509c30205d032af109f4330d8b
Author: Lukas Krejci <lkrejci>
Date:   Thu Aug 16 14:41:27 2012 +0200

    [BZ 803737] - adding the core/native-system module to the API checks.
    (cherry picked from commit d30f869055c15e1f5539d91dddc4b14d224cf490)

release/jon3.1.x http://git.fedorahosted.org/cgit/rhq/rhq.git/diff/?id=3da0f440a77c58ae9097cef0952042e705dd6ce1
Author: Lukas Krejci <lkrejci>
Date:   Thu Nov 8 15:45:46 2012 +0100

    [BZ 803737] - API checks based on clirr plugin
    (cherry picked from commit cc51a3cb86e68c5ef4e56bf1a2972c6f5c1a70db)

Comment 18 Charles Crouch 2012-11-19 18:44:47 UTC
Moving back to ON_DEV as I have some questions about this


Note You need to log in before you can comment on or make changes to this bug.