modules/core/domain/intentional-api-changes-since-4.4.0.xml | 22 ++++++++++ modules/core/plugin-api/intentional-api-changes-since-4.4.0.xml | 15 ++++++ modules/enterprise/server/jar/intentional-api-changes-since-4.4.0.xml | 14 ++++++ modules/enterprise/server/jar/pom.xml | 10 ++++ modules/plugins/database/intentional-api-changes-since-4.4.0.xml | 14 ++++++ modules/plugins/jboss-as-5/intentional-api-changes-since-4.4.0.xml | 16 +++++++ pom.xml | 10 ++++ 7 files changed, 100 insertions(+), 1 deletion(-)
New commits: commit dad63bee36143bd4619e62c924cf34b0d65f4f8e Author: Lukas Krejci lkrejci@redhat.com 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).
diff --git a/modules/core/domain/intentional-api-changes-since-4.4.0.xml b/modules/core/domain/intentional-api-changes-since-4.4.0.xml new file mode 100644 index 0000000..6d70888 --- /dev/null +++ b/modules/core/domain/intentional-api-changes-since-4.4.0.xml @@ -0,0 +1,22 @@ +<?xml version="1.0"?> +<differences> + <difference> + <className>org/rhq/core/domain/configuration/ObfuscatedPropertySimple</className> + <differenceType>7004</differenceType><!-- number of args changed --> + <method>void *obfuscate()</method> + <justification>Protected methods used only by JPA and other internal logic. It is not visible or supposed to be used outside of this class.</justification> + </difference> + <difference> + <className>org/rhq/core/domain/configuration/ObfuscatedPropertySimple</className> + <differenceType>7006</differenceType><!-- return type changed --> + <method>void *obfuscate()</method> + <to>java.lang.String</to> + <justification>Protected methods used only by JPA and other internal logic. It is not visible or supposed to be used outside of this class.</justification> + </difference> + <difference> + <className>**/*</className> + <differenceType>6003</differenceType><!-- value of compile-time constant changed --> + <field>*</field> + <justification>The constants we declare on the domain objects are not supposed for public consumption.</justification> + </difference> +</differences> diff --git a/modules/core/plugin-api/intentional-api-changes-since-4.4.0.xml b/modules/core/plugin-api/intentional-api-changes-since-4.4.0.xml new file mode 100644 index 0000000..33dd783 --- /dev/null +++ b/modules/core/plugin-api/intentional-api-changes-since-4.4.0.xml @@ -0,0 +1,15 @@ +<?xml version="1.0"?> +<differences> + <difference> + <className>org/rhq/core/pluginapi/inventory/ResourceContext</className> + <differenceType>7004</differenceType><!-- number of args changed --> + <method>ResourceContext(*)</method> + <justification>Instances of this class are provided by the API, it is not supposed to be instantiated by users.</justification> + </difference> + <difference> + <className>org/rhq/core/pluginapi/upgrade/ResourceUpgradeContext</className> + <differenceType>7004</differenceType><!-- number of args changed --> + <method>ResourceUpgradeContext(*)</method> + <justification>Instances of this class are provided by the API, it is not supposed to be instantiated by users.</justification> + </difference> +</differences> diff --git a/modules/enterprise/server/jar/intentional-api-changes-since-4.4.0.xml b/modules/enterprise/server/jar/intentional-api-changes-since-4.4.0.xml new file mode 100644 index 0000000..743c970 --- /dev/null +++ b/modules/enterprise/server/jar/intentional-api-changes-since-4.4.0.xml @@ -0,0 +1,14 @@ +<differences> + <difference> + <className>org/rhq/enterprise/server/content/RepoManagerRemote</className> + <differenceType>7012</differenceType><!-- method added to an interface --> + <method>byte[] getPackageVersionBytes(org.rhq.core.domain.auth.Subject, int, int)</method> + <justification>Adding a method to a remote API interface is safe. This class is never to be implemented by users.</justification> + </difference> + <difference> + <className>org/rhq/enterprise/server/measurement/MeasurementDataManagerRemote</className> + <differenceType>7012</differenceType><!-- method added to an interface --> + <method>java.util.Set findLiveDataForGroup(org.rhq.core.domain.auth.Subject, int, int[], int[])</method> + <justification>Adding a method to a remote API interface is safe. This class is never to be implemented by users.</justification> + </difference> +</differences> diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml index 4efad25..0a067fe 100644 --- a/modules/enterprise/server/jar/pom.xml +++ b/modules/enterprise/server/jar/pom.xml @@ -916,6 +916,16 @@ <include>**/*Remote</include> <include>**/ServerVersion</include> </includes> + <ignored> + <!-- This is intentionally ignored in any version of RHQ. We never + even report it. --> + <difference> + <className>**/ServerVersion</className> + <differenceType>6003</differenceType> <!-- Constant field value changed --> + <field>namespace</field> + <justification>The namespace changes with every version, so this is definitely an intentional change.</justification> + </difference> + </ignored> </configuration> </plugin> </plugins> diff --git a/modules/plugins/database/intentional-api-changes-since-4.4.0.xml b/modules/plugins/database/intentional-api-changes-since-4.4.0.xml new file mode 100644 index 0000000..d1f007a --- /dev/null +++ b/modules/plugins/database/intentional-api-changes-since-4.4.0.xml @@ -0,0 +1,14 @@ +<?xml version="1.0"?> +<differences> + <difference> + <className>org/rhq/plugins/database/DatabaseQueryUtility</className> + <differenceType>7009</differenceType><!-- decreased visibility --> + <method>DatabaseQueryUtility()</method> + <justification>This is a static utility class, so holding a reference to it doesn't make sense. People should correct their code if they did so.</justification> + </difference> + <difference> + <className>org/rhq/plugins/database/DatabaseQueryUtility$StatementParameter</className> + <differenceType>8001</differenceType><!-- class removed --> + <justification>Removed an unused class.</justification> + </difference> +</differences> diff --git a/modules/plugins/jboss-as-5/intentional-api-changes-since-4.4.0.xml b/modules/plugins/jboss-as-5/intentional-api-changes-since-4.4.0.xml new file mode 100644 index 0000000..a6fa4c9 --- /dev/null +++ b/modules/plugins/jboss-as-5/intentional-api-changes-since-4.4.0.xml @@ -0,0 +1,16 @@ +<?xml version="1.0"?> +<differences> + <difference> + <className>org/rhq/plugins/jbossas5/Ejb2BeanComponent</className> + <differenceType>7004</differenceType><!-- number of arguments changed --> + <method>org.jboss.managed.api.ManagedComponent getManagedComponent()</method> + <justification> + This difference is due to fixes applied for bug 835113. The old method signature cannot be added back because it would re-introduce the problem fixed by bug 835113. + This method is just protected so it is not visible (or available for use) outside of inheriting classes. + Also, this method is just an override for a base method from ManagedComponentComponent. The base class, ManagedComponentComponent, still has both methods available for use. + The fix for bug 835113 had the Ejb2BeanComponent override a different base method. + + Based on this, no action to be taken for this difference. + </justification> + </difference> +</differences> diff --git a/pom.xml b/pom.xml index 61343ef..b1a59d4 100644 --- a/pom.xml +++ b/pom.xml @@ -191,6 +191,10 @@ <!-- a default value for the child modules indicating that the module is not part of our public API and is therefore not API-checked. --> <rhq.internal>true</rhq.internal> + + <!-- The name of the file in the module's root dir that contains the intentional + api changes to be ignored by Clirr api checks --> + <intentional-api-changes-file>intentional-api-changes-since-${signature-check-base-version}.xml</intentional-api-changes-file> </properties>
@@ -1373,8 +1377,12 @@ </comparisonArtifacts> <logResults>true</logResults> <xmlOutputFile>${project.build.directory}/${project.build.finalName}.signature-check.xml</xmlOutputFile> - <failOnError>false</failOnError> + <failOnError>true</failOnError> + <failOnWarning>true</failOnWarning> <skip>${rhq.internal}</skip> + <!-- note that this is only available in clirr maven plugin 2.5, but internally we use a patched version for our CI builds. + Once new Clirr maven plugin is released, this will work for you, too. --> + <ignoredDifferencesFile>${intentional-api-changes-file}</ignoredDifferencesFile> </configuration> </execution> </executions>
rhq-commits@lists.fedorahosted.org