Bug 820948
Summary: | Possible unexpected API changes between JON 3.0 and JON 3.1 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [JBoss] JBoss Operations Network | Reporter: | Mike Foley <mfoley> | ||||||||||
Component: | CLI | Assignee: | Jay Shaughnessy <jshaughn> | ||||||||||
Status: | CLOSED CURRENTRELEASE | QA Contact: | Mike Foley <mfoley> | ||||||||||
Severity: | high | Docs Contact: | |||||||||||
Priority: | urgent | ||||||||||||
Version: | JON 3.1.0 | CC: | ccrouch, jshaughn | ||||||||||
Target Milestone: | GA | ||||||||||||
Target Release: | JON 3.1.0 | ||||||||||||
Hardware: | Unspecified | ||||||||||||
OS: | Unspecified | ||||||||||||
Whiteboard: | |||||||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||||||
Doc Text: | Story Points: | --- | |||||||||||
Clone Of: | Environment: | ||||||||||||
Last Closed: | 2013-09-11 11:03:18 UTC | Type: | Bug | ||||||||||
Regression: | --- | Mount Type: | --- | ||||||||||
Documentation: | --- | CRM: | |||||||||||
Verified Versions: | Category: | --- | |||||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||||
Embargoed: | |||||||||||||
Bug Depends On: | |||||||||||||
Bug Blocks: | 782579 | ||||||||||||
Attachments: |
|
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 http://docs.redhat.com/docs/en-US/JBoss_Operations_Network/100/html/API/remote-api/index.html http://docs.redhat.com/docs/en-US/JBoss_Operations_Network/100/html/API/plugin-api/index.html http://docs.redhat.com/docs/en-US/JBoss_Operations_Network/100/html/API/domain/index.html rather than the contents of rhq-enterprise-server-XYZ-client.jar 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. 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... thank you ips. new report attached comparing JON 3.01 and JON 3.1. Created attachment 585253 [details]
Report
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 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.
Created attachment 586292 [details]
Classes List
I reviewed the differences and they all seem OK to me. verifying per comment 11. current state of API checker job is passing. |
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