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

mgrigorov pushed a commit to branch 
WICKET-6913-replace-cglib-with-bytebuddy-wicket-10.x
in repository https://gitbox.apache.org/repos/asf/wicket.git

commit f16168bee0a56ef08ab2fc36f7a6ef669a7b8463
Author: Martin Tzvetanov Grigorov <mgrigo...@apache.org>
AuthorDate: Thu Aug 12 14:05:07 2021 +0300

    WICKET-6913 Replace CGLib with ByteBuddy
    
    Replace all occurrences of "cglib" with "byte-buddy".
    Merge AbstractByteBuddyInterceptor and ByteBuddyInterceptor. I see no need 
of both. If an application needs special impl of #writeReplace() then it could 
extend ByteBuddyInterceptor and override it.
    Improve Maven dependency management related to byte-buddy.
---
 NOTICE                                             |  8 ++++----
 README.md                                          |  4 ++--
 pom.xml                                            | 12 +++++------
 wicket-examples/src/main/resources/META-INF/NOTICE | 10 ++++-----
 wicket-ioc/pom.xml                                 |  9 ++++----
 .../apache/wicket/proxy/LazyInitProxyFactory.java  | 24 +++++-----------------
 .../objenesis/ObjenesisByteBuddyInterceptor.java   |  2 +-
 .../proxy/objenesis/ObjenesisProxyFactory.java     |  6 ------
 .../wicket/injection/util/MockDependency.java      |  2 +-
 .../wicket/proxy/PackagePrivateConcreteObject.java |  2 +-
 .../apache/wicket/proxy/util/ConcreteObject.java   |  2 +-
 wicket-jmx/pom.xml                                 |  1 -
 .../annot/SpringBeanWithGenericsTest.java          |  2 +-
 13 files changed, 31 insertions(+), 53 deletions(-)

diff --git a/NOTICE b/NOTICE
index 3e462db..b212522 100644
--- a/NOTICE
+++ b/NOTICE
@@ -53,11 +53,11 @@ src/./wicket-examples
    This product includes software developed by the Spring Framework Project
    (http://www.springframework.org).
 
-   This product includes software developed by the CGLib Project
-   (http://cglib.sourceforge.net).
+   This product includes software developed by the ByteBuddy Project
+   (https://bytebuddy.net/).
 
-   This product includes ASM, released under a BSD style license 
(http://asm.objectweb.org).
-   Copyright (c) 2000-2005 INRIA, France Telecom
+   This product includes ASM, released under a BSD style license 
(https://asm.ow2.io/).
+   Copyright (c) 2000-2011 INRIA, France Telecom
 
    This product includes jhighlight (https://jhighlight.dev.java.net/)
    which is released under CDDL 1.0 license 
(http://www.opensource.org/licenses/cddl1.php).
diff --git a/README.md b/README.md
index 01e9982..32b9555 100644
--- a/README.md
+++ b/README.md
@@ -158,8 +158,8 @@ the src/ folder.
 
  - wicket-ioc:
 
-    cglib 3.1 (http://cglib.sourceforge.net/) and 
-    asm-util 5.0.3 (http://asm.objectweb.org/)
+    byte-buddy 1.11.12 (https://bytebuddy.net/) and 
+    asm-util 9.1 (https://asm.ow2.io/)
 
  - wicket-spring:
 
diff --git a/pom.xml b/pom.xml
index 6564ee5..551ddc3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -137,8 +137,8 @@
                <asm.version>9.1</asm.version>
                <aspectj.version>1.9.6</aspectj.version>
                <assertj-core.version>3.19.0</assertj-core.version>
+               <byte-buddy.version>1.11.12</byte-buddy.version>
                <cdi-unit.version>4.1.0</cdi-unit.version>
-               <cglib.version>3.3.0</cglib.version>
                <commons-collections.version>3.2.2</commons-collections.version>
                <commons-collections4.version>4.4</commons-collections4.version>
                <commons-fileupload.version>1.4</commons-fileupload.version>
@@ -259,11 +259,6 @@
                                <scope>provided</scope>
                        </dependency>
                        <dependency>
-                               <groupId>cglib</groupId>
-                               <artifactId>cglib</artifactId>
-                               <version>${cglib.version}</version>
-                       </dependency>
-                       <dependency>
                                <groupId>com.fasterxml.jackson.core</groupId>
                                <artifactId>jackson-databind</artifactId>
                                <version>${jackson.version}</version>
@@ -323,6 +318,11 @@
                                <optional>true</optional>
                        </dependency>
                        <dependency>
+                               <groupId>net.bytebuddy</groupId>
+                               <artifactId>byte-buddy</artifactId>
+                               <version>${byte-buddy.version}</version>
+                       </dependency>
+                       <dependency>
                                <groupId>org.apache.commons</groupId>
                                <artifactId>commons-collections4</artifactId>
                                
<version>${commons-collections4.version}</version>
diff --git a/wicket-examples/src/main/resources/META-INF/NOTICE 
b/wicket-examples/src/main/resources/META-INF/NOTICE
index 619dd91..08cc74b 100644
--- a/wicket-examples/src/main/resources/META-INF/NOTICE
+++ b/wicket-examples/src/main/resources/META-INF/NOTICE
@@ -26,11 +26,11 @@
    This product includes software developed by the Spring Framework Project
    (http://www.springframework.org).
 
-   This product includes software developed by the CGLib Project
-   (http://cglib.sourceforge.net).
+   This product includes software developed by the ByteBiddy Project
+   (https://bytebuddy.net/).
 
-   This product includes ASM, released under a BSD style license 
(http://asm.objectweb.org).
-   Copyright (c) 2000-2005 INRIA, France Telecom
+   This product includes ASM, released under a BSD style license 
(https://asm.ow2.io/).
+   Copyright (c) 2000-2011 INRIA, France Telecom
 
    This product includes jhighlight (https://jhighlight.dev.java.net/)
    which is released under CDDL 1.0 license 
(http://www.opensource.org/licenses/cddl1.php).
@@ -42,4 +42,4 @@
    jQuery Foundation, Inc, http://jquery.org/license
 
    Contains qunit.css released under a MIT style license.
-   jQuery Foundation, Inc, http://jquery.org/license
\ No newline at end of file
+   jQuery Foundation, Inc, http://jquery.org/license
diff --git a/wicket-ioc/pom.xml b/wicket-ioc/pom.xml
index 1a43586..6e3697a 100644
--- a/wicket-ioc/pom.xml
+++ b/wicket-ioc/pom.xml
@@ -33,15 +33,14 @@
 
        <dependencies>
                <dependency>
-                       <groupId>net.bytebuddy</groupId>
-                       <artifactId>byte-buddy</artifactId>
-                       <version>1.11.12</version>
-               </dependency>
-               <dependency>
                        <groupId>jakarta.inject</groupId>
                        <artifactId>jakarta.inject-api</artifactId>
                </dependency>
                <dependency>
+                       <groupId>net.bytebuddy</groupId>
+                       <artifactId>byte-buddy</artifactId>
+               </dependency>
+               <dependency>
                        <groupId>org.apache.wicket</groupId>
                        <artifactId>wicket-core</artifactId>
                        <version>${project.version}</version>
diff --git 
a/wicket-ioc/src/main/java/org/apache/wicket/proxy/LazyInitProxyFactory.java 
b/wicket-ioc/src/main/java/org/apache/wicket/proxy/LazyInitProxyFactory.java
index 8a24bc2..e33e67d 100644
--- a/wicket-ioc/src/main/java/org/apache/wicket/proxy/LazyInitProxyFactory.java
+++ b/wicket-ioc/src/main/java/org/apache/wicket/proxy/LazyInitProxyFactory.java
@@ -53,7 +53,7 @@ import org.apache.wicket.util.io.IClusterable;
  * forwarded.
  * <p>
  * This factory creates two kinds of proxies: A standard dynamic proxy when 
the specified type is an
- * interface, and a CGLib proxy when the specified type is a concrete class.
+ * interface, and a ByteBuddy proxy when the specified type is a concrete 
class.
  * <p>
  * The general use case for such a proxy is to represent a dependency that 
should not be serialized
  * with a wicket page or {@link IModel}. The solution is to serialize the 
proxy and the
@@ -307,7 +307,7 @@ public class LazyInitProxyFactory
         * 
         * @author Igor Vaynberg (ivaynberg)
         */
-       public abstract static class AbstractByteBuddyInterceptor
+       public static class ByteBuddyInterceptor
                implements
                        ILazyInitProxy,
                        Serializable,
@@ -330,7 +330,7 @@ public class LazyInitProxyFactory
                 * @param locator
                 *            object locator used to locate the object this 
proxy represents
                 */
-               public AbstractByteBuddyInterceptor(final Class<?> type, final 
IProxyTargetLocator locator)
+               public ByteBuddyInterceptor(final Class<?> type, final 
IProxyTargetLocator locator)
                {
                        super();
                        typeName = type.getName();
@@ -381,20 +381,6 @@ public class LazyInitProxyFactory
                {
                        return locator;
                }
-       }
-
-       /**
-        * Method interceptor for proxies representing concrete object not 
backed by an interface.
-        * These proxies are representing by ByteBuddy proxies.
-        *
-        * @author Igor Vaynberg (ivaynberg)
-        */
-       protected static class ByteBuddyInterceptor extends 
AbstractByteBuddyInterceptor
-       {
-               public ByteBuddyInterceptor(Class<?> type, IProxyTargetLocator 
locator)
-               {
-                       super(type, locator);
-               }
 
                @Override
                public Object writeReplace() throws ObjectStreamException
@@ -581,11 +567,11 @@ public class LazyInitProxyFactory
 
                @Override
                protected String name(TypeDescription superClass) {
-                       final String prefix = superClass.getName();
+                       String prefix = superClass.getName();
                        int lastIdxOfDot = prefix.lastIndexOf('.');
                        String packageName = prefix.substring(0, lastIdxOfDot);
                        String className = prefix.substring(lastIdxOfDot + 1);
-                       String name = packageName + ".Wicket_Proxy_" + 
className;
+                       String name = "bytebuddy_generated_wicket_proxy." + 
packageName + "." + className;
                        return name;
                }
 
diff --git 
a/wicket-ioc/src/main/java/org/apache/wicket/proxy/objenesis/ObjenesisByteBuddyInterceptor.java
 
b/wicket-ioc/src/main/java/org/apache/wicket/proxy/objenesis/ObjenesisByteBuddyInterceptor.java
index ee40a60..e2bdbff 100644
--- 
a/wicket-ioc/src/main/java/org/apache/wicket/proxy/objenesis/ObjenesisByteBuddyInterceptor.java
+++ 
b/wicket-ioc/src/main/java/org/apache/wicket/proxy/objenesis/ObjenesisByteBuddyInterceptor.java
@@ -25,7 +25,7 @@ import org.apache.wicket.proxy.LazyInitProxyFactory;
  * Method interceptor for proxies representing concrete object not backed by 
an interface.
  * These proxies are representing by ByteBuddy proxies.
  */
-public class ObjenesisByteBuddyInterceptor extends 
LazyInitProxyFactory.AbstractByteBuddyInterceptor
+public class ObjenesisByteBuddyInterceptor extends 
LazyInitProxyFactory.ByteBuddyInterceptor
 {
        public ObjenesisByteBuddyInterceptor(Class<?> type, IProxyTargetLocator 
locator) {
                super(type, locator);
diff --git 
a/wicket-ioc/src/main/java/org/apache/wicket/proxy/objenesis/ObjenesisProxyFactory.java
 
b/wicket-ioc/src/main/java/org/apache/wicket/proxy/objenesis/ObjenesisProxyFactory.java
index 050c255..89f79f0 100644
--- 
a/wicket-ioc/src/main/java/org/apache/wicket/proxy/objenesis/ObjenesisProxyFactory.java
+++ 
b/wicket-ioc/src/main/java/org/apache/wicket/proxy/objenesis/ObjenesisProxyFactory.java
@@ -16,16 +16,10 @@
  */
 package org.apache.wicket.proxy.objenesis;
 
-import net.bytebuddy.NamingStrategy;
 import org.apache.wicket.proxy.IProxyTargetLocator;
 import org.apache.wicket.proxy.LazyInitProxyFactory;
 import org.objenesis.ObjenesisStd;
 
-//import net.sf.cglib.core.NamingPolicy;
-//import net.sf.cglib.proxy.Callback;
-//import net.sf.cglib.proxy.Enhancer;
-//import net.sf.cglib.proxy.Factory;
-
 public class ObjenesisProxyFactory
 {
        private static final ObjenesisStd OBJENESIS = new ObjenesisStd(false);
diff --git 
a/wicket-ioc/src/test/java/org/apache/wicket/injection/util/MockDependency.java 
b/wicket-ioc/src/test/java/org/apache/wicket/injection/util/MockDependency.java
index cc22135..70daa3b 100644
--- 
a/wicket-ioc/src/test/java/org/apache/wicket/injection/util/MockDependency.java
+++ 
b/wicket-ioc/src/test/java/org/apache/wicket/injection/util/MockDependency.java
@@ -27,7 +27,7 @@ public class MockDependency
        private String message;
 
        /**
-        * Empty default constructor. It is required by cglib to create a proxy.
+        * Empty default constructor. It is required by byte-buddy to create a 
proxy.
         */
        public MockDependency()
        {
diff --git 
a/wicket-ioc/src/test/java/org/apache/wicket/proxy/PackagePrivateConcreteObject.java
 
b/wicket-ioc/src/test/java/org/apache/wicket/proxy/PackagePrivateConcreteObject.java
index 3b31e63..5f87e29 100644
--- 
a/wicket-ioc/src/test/java/org/apache/wicket/proxy/PackagePrivateConcreteObject.java
+++ 
b/wicket-ioc/src/test/java/org/apache/wicket/proxy/PackagePrivateConcreteObject.java
@@ -26,7 +26,7 @@ class PackagePrivateConcreteObject
        private String message;
 
        /**
-        * Empty default constructor. It is required by cglib to create a proxy.
+        * Empty default constructor. It is required by byte-buddy to create a 
proxy.
         */
        public PackagePrivateConcreteObject()
        {
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 e36c269..cb45c47 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
@@ -27,7 +27,7 @@ public class ConcreteObject
        private String message;
 
        /**
-        * Empty default constructor. It is required by cglib to create a proxy.
+        * Empty default constructor. It is required by byte-buddy to create a 
proxy.
         */
        public ConcreteObject()
        {
diff --git a/wicket-jmx/pom.xml b/wicket-jmx/pom.xml
index b827a78..67303ae 100644
--- a/wicket-jmx/pom.xml
+++ b/wicket-jmx/pom.xml
@@ -32,7 +32,6 @@
                <dependency>
                        <groupId>net.bytebuddy</groupId>
                        <artifactId>byte-buddy</artifactId>
-                       <version>1.11.12</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.wicket</groupId>
diff --git 
a/wicket-spring/src/test/java/org/apache/wicket/spring/injection/annot/SpringBeanWithGenericsTest.java
 
b/wicket-spring/src/test/java/org/apache/wicket/spring/injection/annot/SpringBeanWithGenericsTest.java
index 653a93c..ac743c1 100644
--- 
a/wicket-spring/src/test/java/org/apache/wicket/spring/injection/annot/SpringBeanWithGenericsTest.java
+++ 
b/wicket-spring/src/test/java/org/apache/wicket/spring/injection/annot/SpringBeanWithGenericsTest.java
@@ -290,7 +290,7 @@ class SpringBeanWithGenericsTest
                @Bean
                public List<String> stringsList()
                {
-                       return Arrays.asList("foo", "bar", "baz");
+                       return List.of("foo", "bar", "baz");
                }
 
                @Bean

Reply via email to