From e44987a4d1bcad2bdd113af7e8315418fb1960d3 Mon Sep 17 00:00:00 2001 From: Guillermo Calvo Date: Sat, 24 Feb 2024 15:23:35 +0100 Subject: [PATCH 1/2] Add some tests to check a superclass' corresponding class --- japicmp/src/main/java/japicmp/model/JApiSuperclass.java | 4 ++++ .../test/java/japicmp/compat/CompatibilityChangesTest.java | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/japicmp/src/main/java/japicmp/model/JApiSuperclass.java b/japicmp/src/main/java/japicmp/model/JApiSuperclass.java index 81dd3b05a..83dc0a9ec 100644 --- a/japicmp/src/main/java/japicmp/model/JApiSuperclass.java +++ b/japicmp/src/main/java/japicmp/model/JApiSuperclass.java @@ -134,6 +134,10 @@ void setJApiClass(JApiClass jApiClass) { this.correspondingJApiClass = Optional.of(jApiClass); } + public Optional getCorrespondingJApiClass() { + return correspondingJApiClass; + } + /** * Returns the {@link japicmp.model.JApiClass} this superclass belongs to. * @return the JApiClass this superclass belongs to. diff --git a/japicmp/src/test/java/japicmp/compat/CompatibilityChangesTest.java b/japicmp/src/test/java/japicmp/compat/CompatibilityChangesTest.java index 533a4f338..79b3428d8 100755 --- a/japicmp/src/test/java/japicmp/compat/CompatibilityChangesTest.java +++ b/japicmp/src/test/java/japicmp/compat/CompatibilityChangesTest.java @@ -207,6 +207,8 @@ public List createNewClasses(ClassPool classPool) { assertThat(jApiClass.getSuperclass().getCompatibilityChanges(), hasItem(JApiCompatibilityChange.SUPERCLASS_ADDED)); assertThat(jApiClass.isBinaryCompatible(), is(true)); JApiSuperclass superclass = jApiClass.getSuperclass(); + assertEquals("japicmp.Test", superclass.getJApiClassOwning().getFullyQualifiedName()); + assertEquals("japicmp.Superclass", superclass.getCorrespondingJApiClass().get().getFullyQualifiedName()); assertThat(superclass.isBinaryCompatible(), is(true)); assertThat(superclass.getCompatibilityChanges(), hasItem(JApiCompatibilityChange.SUPERCLASS_ADDED)); } @@ -233,6 +235,8 @@ public List createNewClasses(ClassPool classPool) { assertThat(jApiClass.getCompatibilityChanges().size(), is(0)); assertThat(jApiClass.isBinaryCompatible(), is(true)); JApiSuperclass superclass = jApiClass.getSuperclass(); + assertEquals("japicmp.Test", superclass.getJApiClassOwning().getFullyQualifiedName()); + assertEquals("java.lang.Object", superclass.getCorrespondingJApiClass().get().getFullyQualifiedName()); assertThat(superclass.isBinaryCompatible(), is(true)); assertThat(superclass.getCompatibilityChanges().size(), is(0)); } @@ -370,6 +374,8 @@ public List createNewClasses(ClassPool classPool) { assertThat(jApiMethod.getCompatibilityChanges(), hasItem(JApiCompatibilityChange.METHOD_REMOVED)); assertThat(jApiMethod.isBinaryCompatible(), is(false)); JApiSuperclass superclass = jApiClass.getSuperclass(); + assertEquals("japicmp.Test", superclass.getJApiClassOwning().getFullyQualifiedName()); + assertEquals("java.lang.Object", superclass.getCorrespondingJApiClass().get().getFullyQualifiedName()); assertThat(superclass.isBinaryCompatible(), is(true)); assertThat(superclass.getCompatibilityChanges().size(), is(0)); } From ce4efd67727f0778d64014c31d1904b84575a796 Mon Sep 17 00:00:00 2001 From: Guillermo Calvo Date: Sat, 24 Feb 2024 15:23:57 +0100 Subject: [PATCH 2/2] Correctly set a superclass' corresponding class --- japicmp/src/main/java/japicmp/compat/CompatibilityChanges.java | 1 + japicmp/src/main/java/japicmp/model/JApiClass.java | 1 - japicmp/src/main/java/japicmp/model/JApiSuperclass.java | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/japicmp/src/main/java/japicmp/compat/CompatibilityChanges.java b/japicmp/src/main/java/japicmp/compat/CompatibilityChanges.java index 0af3ede0c..9dcfae98f 100755 --- a/japicmp/src/main/java/japicmp/compat/CompatibilityChanges.java +++ b/japicmp/src/main/java/japicmp/compat/CompatibilityChanges.java @@ -221,6 +221,7 @@ private void forAllSuperclasses(JApiClass jApiClass, Map } classMap.put(foundClass.getFullyQualifiedName(), foundClass); } + superclass.setJApiClass(foundClass); T returnValue = onSuperclassCallback.callback(foundClass, classMap, superclass.getChangeStatus()); returnValues.add(returnValue); forAllSuperclasses(foundClass, classMap, returnValues, onSuperclassCallback); diff --git a/japicmp/src/main/java/japicmp/model/JApiClass.java b/japicmp/src/main/java/japicmp/model/JApiClass.java index cc03d8dad..e959f0a3f 100644 --- a/japicmp/src/main/java/japicmp/model/JApiClass.java +++ b/japicmp/src/main/java/japicmp/model/JApiClass.java @@ -293,7 +293,6 @@ private JApiSuperclass extractSuperclass(Optional oldClassOptional, Opt } } } - retVal.setJApiClass(this); return retVal; } diff --git a/japicmp/src/main/java/japicmp/model/JApiSuperclass.java b/japicmp/src/main/java/japicmp/model/JApiSuperclass.java index 83dc0a9ec..39ccdf6a9 100644 --- a/japicmp/src/main/java/japicmp/model/JApiSuperclass.java +++ b/japicmp/src/main/java/japicmp/model/JApiSuperclass.java @@ -130,7 +130,7 @@ public List getCompatibilityChanges() { return this.compatibilityChanges; } - void setJApiClass(JApiClass jApiClass) { + public void setJApiClass(JApiClass jApiClass) { this.correspondingJApiClass = Optional.of(jApiClass); }