Simplify bean support (#446)

Removes unnecessary code
Includes test that confirms code is unnecessary.

For standalone support, the property descriptor lookup uses Class.getMethods()
For full support, as of Java 21, Introspector includes default methods.
https://bugs.openjdk.org/browse/JDK-8071693
https://github.com/openjdk/jdk/commit/1e4eafb4fe70832294a12938d93e7860073cf4cf
diff --git a/api/src/main/java/jakarta/el/BeanSupportFull.java b/api/src/main/java/jakarta/el/BeanSupportFull.java
index b3a6a1d..a4f5703 100644
--- a/api/src/main/java/jakarta/el/BeanSupportFull.java
+++ b/api/src/main/java/jakarta/el/BeanSupportFull.java
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2023 Contributors to the Eclipse Foundation
- * 
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
  * http://www.eclipse.org/legal/epl-2.0.
@@ -41,34 +41,10 @@
                 for (PropertyDescriptor pd : pds) {
                     this.propertyMap.put(pd.getName(), new BeanPropertyFull(baseClass, pd));
                 }
-                /*
-                 * Populating from any interfaces causes default methods to be included.
-                 */
-                populateFromInterfaces(baseClass);
             } catch (IntrospectionException ie) {
                 throw new ELException(ie);
             }
         }
-
-        private void populateFromInterfaces(Class<?> aClass) throws IntrospectionException {
-            Class<?> interfaces[] = aClass.getInterfaces();
-            if (interfaces.length > 0) {
-                for (Class<?> ifs : interfaces) {
-                    BeanInfo info = Introspector.getBeanInfo(ifs);
-                    PropertyDescriptor[] pds = info.getPropertyDescriptors();
-                    for (PropertyDescriptor pd : pds) {
-                        if (!this.propertyMap.containsKey(pd.getName())) {
-                            this.propertyMap.put(pd.getName(), new BeanPropertyFull(this.baseClass, pd));
-                        }
-                    }
-                    populateFromInterfaces(ifs);
-                }
-            }
-            Class<?> superclass = aClass.getSuperclass();
-            if (superclass != null) {
-                populateFromInterfaces(superclass);
-            }
-        }
     }
 
     static final class BeanPropertyFull extends BeanProperty {
diff --git a/api/src/main/java/jakarta/el/BeanSupportStandalone.java b/api/src/main/java/jakarta/el/BeanSupportStandalone.java
index 29a515a..cc4ff6e 100644
--- a/api/src/main/java/jakarta/el/BeanSupportStandalone.java
+++ b/api/src/main/java/jakarta/el/BeanSupportStandalone.java
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2023 Contributors to the Eclipse Foundation
- * 
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
  * http://www.eclipse.org/legal/epl-2.0.
@@ -171,29 +171,6 @@
             for (PropertyDescriptor pd : pds) {
                 this.propertyMap.put(pd.getName(), new BeanPropertyStandalone(baseClass, pd));
             }
-            /*
-             * Populating from any interfaces causes default methods to be included.
-             */
-            populateFromInterfaces(baseClass);
-        }
-
-        private void populateFromInterfaces(Class<?> aClass) {
-            Class<?> interfaces[] = aClass.getInterfaces();
-            if (interfaces.length > 0) {
-                for (Class<?> ifs : interfaces) {
-                    PropertyDescriptor[] pds = getPropertyDescriptors(baseClass);
-                    for (PropertyDescriptor pd : pds) {
-                        if (!this.propertyMap.containsKey(pd.getName())) {
-                            this.propertyMap.put(pd.getName(), new BeanPropertyStandalone(this.baseClass, pd));
-                        }
-                    }
-                    populateFromInterfaces(ifs);
-                }
-            }
-            Class<?> superclass = aClass.getSuperclass();
-            if (superclass != null) {
-                populateFromInterfaces(superclass);
-            }
         }
     }
 
diff --git a/api/src/test/java/jakarta/el/TestBeanSupport.java b/api/src/test/java/jakarta/el/TestBeanSupport.java
index e7ed166..5d52ec0 100644
--- a/api/src/test/java/jakarta/el/TestBeanSupport.java
+++ b/api/src/test/java/jakarta/el/TestBeanSupport.java
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2023 Contributors to the Eclipse Foundation
- * 
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
  * http://www.eclipse.org/legal/epl-2.0.
@@ -96,6 +96,12 @@
         doTest(useStandalone, AmbiguousBean02.class, "value", TypeA.class, null, TypeA.class);
     }
 
+    @ParameterizedTest
+    @MethodSource("data")
+    public void testInterfaceDefaultMethod(boolean useStandalone) {
+        doTest(useStandalone, BeanB.class, "defaultValue", String.class, String.class, null);
+    }
+
     private void doTest(boolean useStandalone, Class<?> clazz, String propertyName, Class<?> type, Class<?> typeGet,
             Class<?> typeSet) {
         configureBeanSupport(useStandalone);
@@ -265,4 +271,15 @@
 
     public static class TypeAAA extends TypeAA {
     }
+
+
+    public static interface InterfaceB {
+        default String getDefaultValue() {
+            return "";
+        }
+    }
+
+
+    public static class BeanB implements InterfaceB {
+    }
 }