Bug 820948 - Possible unexpected API changes between JON 3.0 and JON 3.1
Possible unexpected API changes between JON 3.0 and JON 3.1
Product: JBoss Operations Network
Classification: JBoss
Component: CLI (Show other bugs)
JON 3.1.0
Unspecified Unspecified
urgent Severity high
: GA
: JON 3.1.0
Assigned To: Jay Shaughnessy
Mike Foley
Depends On:
Blocks: jon310-sprint11/rhq44-sprint11
  Show dependency treegraph
Reported: 2012-05-11 08:09 EDT by Mike Foley
Modified: 2013-09-11 07:03 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2013-09-11 07:03:18 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
API changes between JON 3.0 and JON 3.1 (998.45 KB, text/html)
2012-05-11 08:09 EDT, Mike Foley
no flags Details
Report (723.71 KB, text/html)
2012-05-17 11:28 EDT, Mike Foley
no flags Details
JAVA API compatibility Report (185.03 KB, text/html)
2012-05-23 06:06 EDT, Jeeva Kandasamy
no flags Details
Classes List (28.79 KB, text/x-log)
2012-05-23 06:08 EDT, Jeeva Kandasamy
no flags Details

  None (edit)
Description Mike Foley 2012-05-11 08:09:09 EDT
Created attachment 583818 [details]
API changes between JON 3.0 and JON 3.1

Description of problem:  Possible unexpected API changes between JON 3.0 and JON 3.1

Actual results:  possible API changes between JON 3.0 and JON 3.1

Expected results:  API remains constant, or changes in a managed way (with additions, deprecations, etc...)

Additional info:  attached analysis
Comment 1 Charles Crouch 2012-05-11 12:37:33 EDT
Setting to urgent for dev to investigate more. Initial comments

-We should be diffing between JON3.0.1 and JON3.1.0

-We should be diffing the following api's as represent below
rather than the contents of rhq-enterprise-server-XYZ-client.jar
Comment 2 Charles Crouch 2012-05-11 16:09:26 EDT
From an engineering perspective I'm looking for us to help QE determine which jars should be compared to diff the api's we document, and any additional filtering which is needed.
Comment 3 Ian Springer 2012-05-14 17:33:54 EDT
Here's the commands to list the remote API classes for RHQ 4.4:

$ # enterprise-server-jar
$ wget https://repository.jboss.org/nexus/content/repositories/releases/org/rhq/rhq-enterprise-server/4.4.0/rhq-enterprise-server-4.4.0.jar
$ jar tvf rhq-enterprise-server-4.4.0.jar | grep "org/rhq/enterprise/server/.*Remote\.class"

$ # core-domain
$ wget https://repository.jboss.org/nexus/content/repositories/releases/org/rhq/rhq-core-domain/4.4.0/rhq-core-domain-4.4.0.jar
$ jar tvf rhq-core-domain-4.4.0.jar | grep ".*\.class"

And here's the commands for the plugin API classes for 4.4:

$ # core-plugin-api
$ wget https://repository.jboss.org/nexus/content/repositories/releases/org/rhq/rhq-core-plugin-api/4.4.0/rhq-core-plugin-api-4.4.0.jar
$ jar tvf rhq-core-plugin-api-4.4.0.jar | grep ".*\.class"

$ # core-native-system
$ wget https://repository.jboss.org/nexus/content/repositories/releases/org/rhq/rhq-core-native-system/4.4.0/rhq-core-native-system-4.4.0.jar
$ jar tvf rhq-core-native-system-4.4.0.jar | grep ".*\.class"

$ # core-domain
$ wget https://repository.jboss.org/nexus/content/repositories/releases/org/rhq/rhq-core-domain/4.4.0/rhq-core-domain-4.4.0.jar
$ jar tvf rhq-core-domain-4.4.0.jar | grep ".*\.class"

The classes from core-domain could definitely be filtered further, if we figured out which domain classes are actually referenced by remote API or plugin API classes, but that would not be trivial.

For doing these API checks, I would recommend that QE use the Maven animal-sniffer plugin, which is intended for exactly that.

Reassigning to Mike...
Comment 4 Mike Foley 2012-05-17 11:27:28 EDT
thank you ips.

new report attached comparing JON 3.01 and JON 3.1.
Comment 5 Mike Foley 2012-05-17 11:28:18 EDT
Created attachment 585253 [details]
Comment 6 Mike Foley 2012-05-17 11:29:36 EDT
Problem Summary
Severity	Count
Added Methods	-	503
Removed Methods	High	180
Problems with
Data Types	High	71
Medium	0
Low	0
Problems with
Methods	High	1
Medium	1
Low	0
Other Changes
in Data Types	-	16
Comment 7 Jeeva Kandasamy 2012-05-23 06:06:54 EDT
Created attachment 586290 [details]
JAVA API compatibility Report

We got fix from japi. Now executed with classes filter.

Our target -> Check CLI client remote API's compatibility between JON 3.0.1 and JON 3.1.0.

Here is the exact steps that we followed,

- Downloaded CLI client from JON 3.0.1 server (http://<host-ip>:7080/client/download)and extracted
- Downloaded CLI client from JON 3.1.0 server (http://<host-ip>:7080/client/download)and extracted
- Taken the following jars for validation from the client */lib
    JON 3.0.1 -> rhq-enterprise-comm-4.2.0.JON.3.0.1.GA.jar, rhq-remoting-client-api-4.2.0.JON.3.0.1.GA.jar, rhq-core-domain-4.2.0.JON.3.0.1.GA.jar, rhq-enterprise-server-4.2.0.JON.3.0.1.GA-client.jar, rhq-script-bindings-4.2.0.JON.3.0.1.GA.jar, rhq-core-util-4.2.0.JON.3.0.1.GA.jar, rhq-remoting-cli-4.2.0.JON.3.0.1.GA.jar
    JON 3.1.0 -> rhq-enterprise-comm-4.4.0.JON310ER4.jar, rhq-remoting-client-api-4.4.0.JON310ER4.jar, rhq-core-domain-4.4.0.JON310ER4.jar, rhq-enterprise-server-4.4.0.JON310ER4-client.jarrhq-script-bindings-4.4.0.JON310ER4.jar, rhq-core-util-4.4.0.JON310ER4.jar, rhq-remoting-cli-4.4.0.JON310ER4.jar
- Classes were selected by the command,
    jar tf rhq-enterprise-server-4.2.0.JON.3.0.1.GA-client.jar  | grep "org/rhq/enterprise/server/.*Remote\.class"
    jar tf rhq-core-domain-4.2.0.JON.3.0.1.GA.jar  | grep ".*\.class"

Final Result: Incompatible (1.8%)

Report and classes lists are attached.

Point us if we need to add/remove any classes (or) jars on this comparison.
Comment 8 Jeeva Kandasamy 2012-05-23 06:08:22 EDT
Created attachment 586292 [details]
Classes List
Comment 9 Jay Shaughnessy 2012-05-25 14:32:01 EDT
I reviewed the differences and they all seem OK to me.
Comment 10 Mike Foley 2013-08-30 11:44:48 EDT
verifying per comment 11.  current state of API checker job is passing.

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