This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch wicket-9.x
in repository https://gitbox.apache.org/repos/asf/wicket.git


The following commit(s) were added to refs/heads/wicket-9.x by this push:
     new cbec2da76e [WICKET-7025] package private methods are intercepted by 
ByteBuddy (#552)
cbec2da76e is described below

commit cbec2da76e2aafb4ed62be2b94522441598ffaa7
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Wed Jan 18 16:04:26 2023 +0700

    [WICKET-7025] package private methods are intercepted by ByteBuddy (#552)
    
    [WICKET-7025] package private methods are intercepted by ByteBuddy, tests 
were added
---
 .../wicket/proxy/bytebuddy/ByteBuddyProxyFactory.java      | 14 +++++++-------
 .../proxy/packageprivate/PackagePrivateConcreteObject.java |  7 +++++++
 .../wicket/proxy/packageprivate/PackagePrivateTest.java    |  7 +++++--
 .../java/org/apache/wicket/proxy/util/ConcreteObject.java  |  6 +++---
 4 files changed, 22 insertions(+), 12 deletions(-)

diff --git 
a/wicket-ioc/src/main/java/org/apache/wicket/proxy/bytebuddy/ByteBuddyProxyFactory.java
 
b/wicket-ioc/src/main/java/org/apache/wicket/proxy/bytebuddy/ByteBuddyProxyFactory.java
index 4d53be283b..9cc5cf419b 100644
--- 
a/wicket-ioc/src/main/java/org/apache/wicket/proxy/bytebuddy/ByteBuddyProxyFactory.java
+++ 
b/wicket-ioc/src/main/java/org/apache/wicket/proxy/bytebuddy/ByteBuddyProxyFactory.java
@@ -60,13 +60,13 @@ public class ByteBuddyProxyFactory implements IProxyFactory
        /**
         * Create a lazy init proxy for the specified type. The target object 
will be located using the
         * provided locator upon first method invocation.
-        * 
+        *
         * @param type
         *            type that proxy will represent
-        * 
+        *
         * @param locator
         *            object locator that will locate the object the proxy 
represents
-        * 
+        *
         * @return lazily initializable proxy
         */
        @Override
@@ -75,7 +75,7 @@ public class ByteBuddyProxyFactory implements IProxyFactory
                Class<T> proxyClass = createOrGetProxyClass(type);
 
                T instance;
-               
+
                if (!hasNoArgConstructor(type))
                {
                        instance = INSTANTIATOR.newInstance(proxyClass);
@@ -91,10 +91,10 @@ public class ByteBuddyProxyFactory implements IProxyFactory
                                throw new WicketRuntimeException(e);
                        }
                }
-               
+
                ByteBuddyInterceptor interceptor = new 
ByteBuddyInterceptor(type, locator);
                ((InterceptorMutator) instance).setInterceptor(interceptor);
-               
+
                return instance;
        }
 
@@ -106,7 +106,7 @@ public class ByteBuddyProxyFactory implements IProxyFactory
                                new TypeCache.SimpleKey(type),
                                () -> BYTE_BUDDY
                                                .subclass(type)
-                                               
.method(ElementMatchers.isPublic())
+                                               
.method(ElementMatchers.isPublic().or(ElementMatchers.isPackagePrivate()))
                                                        .intercept(
                                                                MethodDelegation
                                                                        
.withDefaultConfiguration()
diff --git 
a/wicket-ioc/src/test/java/org/apache/wicket/proxy/packageprivate/PackagePrivateConcreteObject.java
 
b/wicket-ioc/src/test/java/org/apache/wicket/proxy/packageprivate/PackagePrivateConcreteObject.java
index e11dc581c1..d85464bcbe 100644
--- 
a/wicket-ioc/src/test/java/org/apache/wicket/proxy/packageprivate/PackagePrivateConcreteObject.java
+++ 
b/wicket-ioc/src/test/java/org/apache/wicket/proxy/packageprivate/PackagePrivateConcreteObject.java
@@ -51,4 +51,11 @@ class PackagePrivateConcreteObject
                return message;
        }
 
+       /**
+        * @return message
+        */
+       String internalGetMessage()
+       {
+               return message;
+       }
 }
diff --git 
a/wicket-ioc/src/test/java/org/apache/wicket/proxy/packageprivate/PackagePrivateTest.java
 
b/wicket-ioc/src/test/java/org/apache/wicket/proxy/packageprivate/PackagePrivateTest.java
index 69dec9b364..948352ef75 100644
--- 
a/wicket-ioc/src/test/java/org/apache/wicket/proxy/packageprivate/PackagePrivateTest.java
+++ 
b/wicket-ioc/src/test/java/org/apache/wicket/proxy/packageprivate/PackagePrivateTest.java
@@ -34,9 +34,9 @@ import org.junit.jupiter.api.Test;
 
 /**
  * Tests lazy init proxy factory
- * 
+ *
  * @author Igor Vaynberg (ivaynberg)
- * 
+ *
  */
 class PackagePrivateTest
 {
@@ -74,6 +74,9 @@ class PackagePrivateTest
                // test method invocation
                assertEquals("package-private-concrete", proxy.getMessage());
 
+               // test method invocation
+               assertEquals("package-private-concrete", 
proxy.internalGetMessage());
+
                // test serialization
                PackagePrivateConcreteObject proxy2 = 
WicketObjects.cloneObject(proxy);
                assertNotSame(proxy, proxy2);
diff --git 
a/wicket-ioc/src/test/java/org/apache/wicket/proxy/util/ConcreteObject.java 
b/wicket-ioc/src/test/java/org/apache/wicket/proxy/util/ConcreteObject.java
index e36c269667..3650ef3d17 100644
--- a/wicket-ioc/src/test/java/org/apache/wicket/proxy/util/ConcreteObject.java
+++ b/wicket-ioc/src/test/java/org/apache/wicket/proxy/util/ConcreteObject.java
@@ -18,9 +18,9 @@ package org.apache.wicket.proxy.util;
 
 /**
  * Mock dependency that does not implement an interface
- * 
+ *
  * @author Igor Vaynberg (ivaynberg)
- * 
+ *
  */
 public class ConcreteObject
 {
@@ -36,7 +36,7 @@ public class ConcreteObject
 
        /**
         * Constructor
-        * 
+        *
         * @param message
         */
        public ConcreteObject(final String message)

Reply via email to