This is an automated email from the ASF dual-hosted git repository. struberg pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git
commit d13b85b13940726dc1faae89ba1f8807a24b0f49 Author: Mark Struberg <strub...@apache.org> AuthorDate: Tue May 30 12:19:30 2023 +0200 OPENJPA-2911 remove Serp from PCSubclassValidator --- .../org/apache/openjpa/enhance/PCEnhancer.java | 2 +- .../openjpa/enhance/PCSubclassValidator.java | 23 +++------------------- .../openjpa/enhance/TestSubclassValidator.java | 5 ++--- 3 files changed, 6 insertions(+), 24 deletions(-) diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java index 0d1f17766..9a0cb32b0 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java @@ -619,7 +619,7 @@ public class PCEnhancer { } if (getCreateSubclass()) { - PCSubclassValidator val = new PCSubclassValidator(_meta, classNode, _managedType, _log, _fail); + PCSubclassValidator val = new PCSubclassValidator(_meta, classNode, _log, _fail); val.assertCanSubclass(); _pc = _managedType.getProject().loadClass(toPCSubclassName(_managedType.getType())); diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCSubclassValidator.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCSubclassValidator.java index 33303a843..714b11e96 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCSubclassValidator.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCSubclassValidator.java @@ -39,9 +39,6 @@ import org.apache.openjpa.meta.FieldMetaData; import org.apache.openjpa.util.UserException; import org.apache.xbean.asm9.tree.ClassNode; -import serp.bytecode.BCClass; -import serp.bytecode.BCField; -import serp.bytecode.BCMethod; /** * <p>Validates that a given type meets the JPA contract, plus a few @@ -86,18 +83,15 @@ public class PCSubclassValidator { private final ClassMetaData meta; private final ClassNode classNode; - private final BCClass bc; private final Log log; private final boolean failOnContractViolations; private Collection errors; private Collection contractViolations; - public PCSubclassValidator(ClassMetaData meta, ClassNode classNode, BCClass bc, Log log, - boolean enforceContractViolations) { + public PCSubclassValidator(ClassMetaData meta, ClassNode classNode, Log log, boolean enforceContractViolations) { this.meta = meta; this.classNode = classNode; - this.bc = bc; this.log = log; this.failOnContractViolations = enforceContractViolations; } @@ -205,11 +199,8 @@ public class PCSubclassValidator { */ private Field checkGetterIsSubclassable(Method meth, FieldMetaData fmd) { checkMethodIsSubclassable(meth, fmd); - BCField bcField = PCEnhancer.getReturnedField_old(getBCMethod(meth)); - Field field = PCEnhancer.getReturnedField(classNode, meth); - //X TODO remove - PCEnhancer.assertSameField(field, bcField); + Field field = PCEnhancer.getReturnedField(classNode, meth); if (field == null) { addContractViolation(loc.get("subclasser-invalid-getter", fmd.getName()), fmd); @@ -227,11 +218,8 @@ public class PCSubclassValidator { */ private Field checkSetterIsSubclassable(Method meth, FieldMetaData fmd) { checkMethodIsSubclassable(meth, fmd); - BCField bcField = PCEnhancer.getAssignedField_old(getBCMethod(meth)); - Field field = PCEnhancer.getAssignedField(classNode, meth); - //X TODO remove - PCEnhancer.assertSameField(field, bcField); + Field field = PCEnhancer.getAssignedField(classNode, meth); if (field == null) { addContractViolation(loc.get("subclasser-invalid-setter", fmd.getName()), fmd); @@ -242,11 +230,6 @@ public class PCSubclassValidator { } } - private BCMethod getBCMethod(Method meth) { - BCClass bc = this.bc.getProject().loadClass(meth.getDeclaringClass()); - return bc.getDeclaredMethod(meth.getName(), meth.getParameterTypes()); - } - private void checkMethodIsSubclassable(Method meth, FieldMetaData fmd) { String className = fmd.getDefiningMetaData(). getDescribedType().getName(); diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestSubclassValidator.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestSubclassValidator.java index 70c1fb1c0..04d43ca1c 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestSubclassValidator.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestSubclassValidator.java @@ -34,7 +34,6 @@ import jakarta.persistence.AccessType; import jakarta.persistence.Basic; import jakarta.persistence.Entity; import jakarta.persistence.Id; -import jakarta.persistence.MappedSuperclass; import serp.bytecode.BCClass; import serp.bytecode.Project; @@ -84,7 +83,7 @@ public class TestSubclassValidator extends SingleEMFTestCase { ClassNode classNode = AsmHelper.readClassNode(EnhanceableGetterEntity.class.getClassLoader(), EnhanceableGetterEntity.class.getName()); final BCClass bcClass = project.loadClass(EnhanceableGetterEntity.class.getName(), tempCl); final ClassMetaData meta = repos.getMetaData(tempCl.loadClass(EnhanceableGetterEntity.class.getName()), tempCl, false); - PCSubclassValidator subclassValidator = new PCSubclassValidator(meta, classNode, bcClass, log, true); + PCSubclassValidator subclassValidator = new PCSubclassValidator(meta, classNode, log, true); subclassValidator.assertCanSubclass(); } @@ -92,7 +91,7 @@ public class TestSubclassValidator extends SingleEMFTestCase { ClassNode classNode = AsmHelper.readClassNode(UnenhancedPropertyAccess.class.getClassLoader(), UnenhancedPropertyAccess.class.getName()); final BCClass bcClass = project.loadClass(UnenhancedPropertyAccess.class.getName(), tempCl); final ClassMetaData meta = repos.getMetaData(tempCl.loadClass(UnenhancedPropertyAccess.class.getName()), tempCl, false); - PCSubclassValidator subclassValidator = new PCSubclassValidator(meta, classNode, bcClass, log, true); + PCSubclassValidator subclassValidator = new PCSubclassValidator(meta, classNode, log, true); subclassValidator.assertCanSubclass(); } }