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

alien11689 pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/aries.git

commit 770e4d23ae41d11f78dda1e47bcc06c3bd5db67f
Author: Dominik Przybysz <[email protected]>
AuthorDate: Sat Feb 1 13:20:08 2025 +0100

    ARIES-2165: Update parent pom and build proxy on Java 11, 17 and 21 adding 
objensis
---
 .github/workflows/blueprint.yml                    |   8 +-
 .github/workflows/proxy.yml                        |  26 ++-
 blueprint/itests/blueprint-itests/pom.xml          |   7 +
 .../org/apache/aries/blueprint/itests/Helper.java  |   1 +
 jmx/jmx-itests/pom.xml                             |   7 +
 .../jmx/test/blueprint/BlueprintMBeanTest.java     |   1 +
 proxy/proxy-api/LICENSE                            | 203 ---------------------
 proxy/proxy-api/NOTICE                             |   8 -
 proxy/proxy-api/pom.xml                            |   9 +-
 proxy/proxy-impl/LICENSE                           | 203 ---------------------
 proxy/proxy-impl/NOTICE                            |   8 -
 proxy/proxy-impl/pom.xml                           | 147 ++++++++++-----
 .../ConstructorFinder.java => AsmApiVersion.java}  |  78 +++-----
 .../impl/common/AbstractWovenProxyAdapter.java     |   5 +-
 .../common/AbstractWovenProxyMethodAdapter.java    |   3 +-
 .../aries/proxy/impl/common/ConstructorFinder.java |   7 +-
 .../impl/common/MethodCopyingClassAdapter.java     |   5 +-
 .../impl/common/OSGiFriendlyClassVisitor.java      |   4 +-
 .../aries/proxy/impl/gen/ProxySubclassAdapter.java |   3 +-
 .../proxy/impl/gen/ProxySubclassGenerator.java     |  33 +---
 .../impl/gen/ProxySubclassHierarchyAdapter.java    |   3 +-
 .../interfaces/InterfaceCombiningClassAdapter.java |   3 +-
 .../impl/interfaces/InterfaceProxyGenerator.java   |   3 +-
 .../impl/weaving/SyntheticSerialVerUIDAdder.java   |   3 +-
 .../aries/proxy/synthesizer/Synthesizer.java       |   3 +-
 proxy/proxy-itests/LICENSE                         | 203 ---------------------
 proxy/proxy-itests/NOTICE                          |   8 -
 proxy/proxy-itests/pom.xml                         |  75 ++++----
 .../aries/proxy/itests/AbstractProxyTest.java      |   1 +
 subsystem/subsystem-itests/pom.xml                 |   7 +
 .../aries/subsystem/itests/SubsystemTest.java      |   3 +-
 31 files changed, 252 insertions(+), 826 deletions(-)

diff --git a/.github/workflows/blueprint.yml b/.github/workflows/blueprint.yml
index c08e4e7a9..8571c215f 100644
--- a/.github/workflows/blueprint.yml
+++ b/.github/workflows/blueprint.yml
@@ -17,10 +17,10 @@ on:
     paths:
       - parent/**
       - testsupport/**
-      - proxy/**
       - versioning/**
       - util/**
       - quiesce/**
+      - proxy/**
       - blueprint/**
       - .github/workflows/blueprint.yml
   push:
@@ -54,9 +54,6 @@ jobs:
     - name: Build testsupport
       shell: bash
       run: mvn -U -e -B -ntp -Dmaven.test.skip=true clean install -f 
testsupport
-    - name: Build proxy
-      shell: bash
-      run: mvn -U -e -B -ntp -Dmaven.test.skip=true clean install -f proxy
     - name: Build versioning
       shell: bash
       run: mvn -U -e -B -ntp -Dmaven.test.skip=true clean install -f versioning
@@ -66,6 +63,9 @@ jobs:
     - name: Build quiesce
       shell: bash
       run: mvn -U -e -B -ntp -Dmaven.test.skip=true clean install -f quiesce
+    - name: Build proxy
+      shell: bash
+      run: mvn -U -e -B -ntp -Dmaven.test.skip=true clean install -f proxy
     - name: Build blueprint
       shell: bash
       run: mvn -U -e -B -ntp clean install -f blueprint
diff --git a/.github/workflows/proxy.yml b/.github/workflows/proxy.yml
index cf093e1b9..e30e7aeee 100644
--- a/.github/workflows/proxy.yml
+++ b/.github/workflows/proxy.yml
@@ -17,6 +17,8 @@ on:
     paths:
       - parent/**
       - testsupport/**
+      - versioning/**
+      - util/**
       - proxy/**
       - .github/workflows/proxy.yml
   push:
@@ -32,24 +34,36 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        java: [ 8 ]
+        java: [ 8, 11, 17, 21 ]
         os: [ ubuntu-latest ]
     name: JDK${{ matrix.java }} ${{ matrix.os }}
     runs-on: ${{ matrix.os }}
     steps:
     - name: Git Checkout
       uses: actions/checkout@v6
-    - name: Set up Java
+    - name: Set up Java 8
       uses: actions/setup-java@v5
       with:
         distribution: 'temurin'
-        java-version: ${{ matrix.java }}
+        java-version: 8
     - name: Build parent
       shell: bash
-      run: mvn -U -e -B -ntp clean install -f parent
+      run: mvn -V -U -e -B -ntp clean install -f parent
     - name: Build testsupport
       shell: bash
-      run: mvn -U -e -B -ntp -Dmaven.test.skip=true clean install -f 
testsupport
+      run: mvn -V -U -e -B -ntp -Dmaven.test.skip=true clean install -f 
testsupport
+    - name: Build versioning
+      shell: bash
+      run: mvn -V -U -e -B -ntp -Dmaven.test.skip=true clean install -f 
versioning
+    - name: Build util
+      shell: bash
+      run: mvn -V -U -e -B -ntp -Dmaven.test.skip=true clean install -f util
+    - name: Set up Java ${{ matrix.java }}
+      uses: actions/setup-java@v5
+      with:
+        distribution: 'temurin'
+        java-version: ${{ matrix.java }}
+      if: ${{ 8 != matrix.java }}
     - name: Build proxy
       shell: bash
-      run: mvn -U -e -B -ntp clean install -f proxy
+      run: mvn -V -U -e -B -ntp clean install -f proxy
diff --git a/blueprint/itests/blueprint-itests/pom.xml 
b/blueprint/itests/blueprint-itests/pom.xml
index 320771949..b36106cf5 100644
--- a/blueprint/itests/blueprint-itests/pom.xml
+++ b/blueprint/itests/blueprint-itests/pom.xml
@@ -57,6 +57,7 @@
         <commons-jexl.version>2.1.1</commons-jexl.version>
         <depends-maven-plugin.version>1.5.0</depends-maven-plugin.version>
         <maven-surefire-plugin.version>3.5.4</maven-surefire-plugin.version>
+        <objenesis.version>3.4</objenesis.version>
         
<org.apache.aries.proxy.version>1.1.15-SNAPSHOT</org.apache.aries.proxy.version>
         
<org.apache.aries.quiesce.api.version>1.0.1-SNAPSHOT</org.apache.aries.quiesce.api.version>
         
<org.apache.aries.testsupport.unit.version>2.0.0-SNAPSHOT</org.apache.aries.testsupport.unit.version>
@@ -108,6 +109,12 @@
             <artifactId>org.apache.aries.proxy</artifactId>
             <version>${org.apache.aries.proxy.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.objenesis</groupId>
+            <artifactId>objenesis</artifactId>
+            <version>${objenesis.version}</version>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>org.apache.servicemix.bundles</groupId>
             
<artifactId>org.apache.servicemix.bundles.spring-context</artifactId>
diff --git 
a/blueprint/itests/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/Helper.java
 
b/blueprint/itests/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/Helper.java
index ba6982afa..9cf339d1c 100644
--- 
a/blueprint/itests/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/Helper.java
+++ 
b/blueprint/itests/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/Helper.java
@@ -65,6 +65,7 @@ public class Helper {
                 mvnBundle("org.apache.felix", "org.apache.felix.configadmin"),
                 mvnBundle("org.ops4j.pax.url", "pax-url-aether"),
                 mvnBundle("org.apache.aries.testsupport", 
"org.apache.aries.testsupport.unit"),
+                mvnBundle("org.objenesis", "objenesis"),
                 mvnBundle("org.apache.aries.proxy", "org.apache.aries.proxy"),
                 mvnBundle("org.apache.commons", "commons-jexl"),
                 mvnBundle("org.apache.aries.blueprint", 
"org.apache.aries.blueprint.jexl.evaluator"),
diff --git a/jmx/jmx-itests/pom.xml b/jmx/jmx-itests/pom.xml
index b86edd67d..12eb3a226 100644
--- a/jmx/jmx-itests/pom.xml
+++ b/jmx/jmx-itests/pom.xml
@@ -41,6 +41,7 @@
         <asm.version>9.9.1</asm.version>
         <commons-jexl.version>2.1.1</commons-jexl.version>
         <javax.inject.version>1</javax.inject.version>
+        <objenesis.version>3.4</objenesis.version>
         
<org.apache.aries.blueprint.jexl.evaluator.version>1.1.1-SNAPSHOT</org.apache.aries.blueprint.jexl.evaluator.version>
         
<org.apache.aries.blueprint.sample.version>1.0.1-SNAPSHOT</org.apache.aries.blueprint.sample.version>
         
<org.apache.aries.blueprint.version>1.3.0-SNAPSHOT</org.apache.aries.blueprint.version>
@@ -144,6 +145,12 @@
             <version>${org.apache.aries.proxy.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.objenesis</groupId>
+            <artifactId>objenesis</artifactId>
+            <version>${objenesis.version}</version>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>org.ow2.asm</groupId>
             <artifactId>asm</artifactId>
diff --git 
a/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/test/blueprint/BlueprintMBeanTest.java
 
b/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/test/blueprint/BlueprintMBeanTest.java
index a7125b717..b79e7d953 100644
--- 
a/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/test/blueprint/BlueprintMBeanTest.java
+++ 
b/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/test/blueprint/BlueprintMBeanTest.java
@@ -79,6 +79,7 @@ public class BlueprintMBeanTest extends 
AbstractIntegrationTest {
        protected Option blueprint() {
                return composite(
                                addAsmBundles(),
+                mavenBundle("org.objenesis", "objenesis").versionAsInProject(),
                                mavenBundle("org.apache.aries.proxy", 
"org.apache.aries.proxy").versionAsInProject(),
                                mavenBundle("org.apache.aries.blueprint", 
"org.apache.aries.blueprint").versionAsInProject(),
                                mavenBundle("org.apache.aries.blueprint", 
"org.apache.aries.blueprint.jexl.evaluator").versionAsInProject(),
diff --git a/proxy/proxy-api/LICENSE b/proxy/proxy-api/LICENSE
deleted file mode 100644
index 6b0b1270f..000000000
--- a/proxy/proxy-api/LICENSE
+++ /dev/null
@@ -1,203 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
diff --git a/proxy/proxy-api/NOTICE b/proxy/proxy-api/NOTICE
deleted file mode 100644
index 424644d05..000000000
--- a/proxy/proxy-api/NOTICE
+++ /dev/null
@@ -1,8 +0,0 @@
-
-Apache Aries
-Copyright 2009-2011 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-
diff --git a/proxy/proxy-api/pom.xml b/proxy/proxy-api/pom.xml
index 9fff22d74..922ed3b0b 100644
--- a/proxy/proxy-api/pom.xml
+++ b/proxy/proxy-api/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.aries</groupId>
         <artifactId>parent</artifactId>
-        <version>2.1.1</version>
+        <version>3.0.0</version>
         <relativePath>../../parent/pom.xml</relativePath>
     </parent>
 
@@ -51,18 +51,13 @@
         </aries.osgi.export.pkg>
         <aries.osgi.private.pkg/>
         <lastReleaseVersion>1.1.1</lastReleaseVersion>
-
-        <!-- Skip version check for release 1.1.0 as the plugin does not 
handle the case
-             of removing a dpendency correctly -->
-        <aries.skip.version.check>true</aries.skip.version.check>
-        <osgi.core.version>4.3.1</osgi.core.version>
+        
<org.apache.aries.versioning.plugin.version>0.3.2-SNAPSHOT</org.apache.aries.versioning.plugin.version>
     </properties>
 
     <dependencies>
         <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>osgi.core</artifactId>
-            <version>${osgi.core.version}</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>
diff --git a/proxy/proxy-impl/LICENSE b/proxy/proxy-impl/LICENSE
deleted file mode 100644
index 6b0b1270f..000000000
--- a/proxy/proxy-impl/LICENSE
+++ /dev/null
@@ -1,203 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
diff --git a/proxy/proxy-impl/NOTICE b/proxy/proxy-impl/NOTICE
deleted file mode 100644
index 424644d05..000000000
--- a/proxy/proxy-impl/NOTICE
+++ /dev/null
@@ -1,8 +0,0 @@
-
-Apache Aries
-Copyright 2009-2011 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-
diff --git a/proxy/proxy-impl/pom.xml b/proxy/proxy-impl/pom.xml
index 75ecfb6a5..b1b252eba 100644
--- a/proxy/proxy-impl/pom.xml
+++ b/proxy/proxy-impl/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.aries</groupId>
         <artifactId>parent</artifactId>
-        <version>2.1.1</version>
+        <version>3.0.0</version>
         <relativePath>../../parent/pom.xml</relativePath>
     </parent>
 
@@ -58,11 +58,13 @@
             org.apache.aries.proxy*;provide:=true,
             org.objectweb.asm*;resolution:=optional;version="[9,10)",
             sun.reflect*;resolution:=optional,
+            org.objenesis*;resolution:=optional,
             *
         </aries.osgi.import.pkg>
         <aries.osgi.private.pkg>
             org.apache.aries.proxy.impl*
         </aries.osgi.private.pkg>
+        
<org.apache.aries.versioning.plugin.version>0.3.2-SNAPSHOT</org.apache.aries.versioning.plugin.version>
         <lastReleaseVersion>1.1.14</lastReleaseVersion>
 
         <asm.version>9.9.1</asm.version>
@@ -71,9 +73,8 @@
         <javax.transaction-api.version>1.3</javax.transaction-api.version>
         <junit.version>4.13.2</junit.version>
         <mockito-core.version>4.11.0</mockito-core.version>
-        
<org.apache.aries.proxy.api.version>1.1.1</org.apache.aries.proxy.api.version>
-        <osgi.cmpn.version>4.3.1</osgi.cmpn.version>
-        <osgi.core.version>4.3.1</osgi.core.version>
+        <objenesis.version>3.4</objenesis.version>
+        
<org.apache.aries.proxy.api.version>1.1.2-SNAPSHOT</org.apache.aries.proxy.api.version>
     </properties>
 
     <dependencies>
@@ -83,6 +84,12 @@
             <version>${org.apache.aries.proxy.api.version}</version>
             <scope>provided</scope>
         </dependency>
+        <dependency>
+            <groupId>org.objenesis</groupId>
+            <artifactId>objenesis</artifactId>
+            <version>${objenesis.version}</version>
+            <optional>true</optional>
+        </dependency>
         <dependency>
             <groupId>org.ow2.asm</groupId>
             <artifactId>asm</artifactId>
@@ -104,13 +111,11 @@
         <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>osgi.core</artifactId>
-            <version>${osgi.core.version}</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>osgi.cmpn</artifactId>
-            <version>${osgi.cmpn.version}</version>
             <scope>provided</scope>
         </dependency>
 
@@ -152,49 +157,6 @@
 
     <build>
         <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-antrun-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <phase>process-classes</phase>
-                        <configuration>
-                            <target>
-                                <!-- run the Synthesizer on the WovenProxy 
class -->
-                                <java 
classname="org.apache.aries.proxy.synthesizer.Synthesizer" 
classpathref="maven.runtime.classpath" fork="false">
-                                    <arg 
value="${project.build.outputDirectory}/org/apache/aries/proxy/weaving/WovenProxy.class"/>
-                                </java>
-
-                                <delete 
dir="${project.build.outputDirectory}/org/apache/aries/proxy/synthesizer"/>
-
-                            </target>
-                        </configuration>
-                        <goals>
-                            <goal>run</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.aries.versioning</groupId>
-                <artifactId>org.apache.aries.versioning.plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>default-verify</id>
-                        <!-- Disable version-check execution as plugin 
requires to be updated to ASM7
-                        <phase>verify</phase>
-                        <goals>
-                            <goal>version-check</goal>
-                        </goals>
-                        -->
-                        <phase>none</phase>
-                    </execution>
-                </executions>
-            </plugin>
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
@@ -216,4 +178,91 @@
         </plugins>
     </build>
 
+    <profiles>
+        <profile>
+            <id>java9To21</id>
+            <activation>
+                <jdk>(8,22)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-surefire-plugin</artifactId>
+                        <configuration>
+                            <!-- necessary for making method defineClass 
accessible -->
+                            <argLine>
+                                --add-opens java.base/java.lang=ALL-UNNAMED
+                            </argLine>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>java8To17</id>
+            <activation>
+                <jdk>[1.8,18)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-antrun-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <phase>process-classes</phase>
+                                <configuration>
+                                    <target>
+                                        <!-- run the Synthesizer on the 
WovenProxy class -->
+                                        <java 
classname="org.apache.aries.proxy.synthesizer.Synthesizer" 
classpathref="maven.runtime.classpath" fork="false">
+                                            <arg 
value="${project.build.outputDirectory}/org/apache/aries/proxy/weaving/WovenProxy.class"/>
+                                        </java>
+                                        <delete 
dir="${project.build.outputDirectory}/org/apache/aries/proxy/synthesizer"/>
+                                    </target>
+                                </configuration>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>java21+</id>
+            <activation>
+                <jdk>21</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-antrun-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <phase>process-classes</phase>
+                                <configuration>
+                                    <target>
+                                        <!-- run the Synthesizer on the 
WovenProxy class -->
+                                        <!-- diff from previous java versions: 
fork and jvmarg -->
+                                        <java 
classname="org.apache.aries.proxy.synthesizer.Synthesizer" 
classpathref="maven.runtime.classpath" fork="true">
+                                            <jvmarg 
value="-Djava.security.manager=allow" />
+                                            <arg 
value="${project.build.outputDirectory}/org/apache/aries/proxy/weaving/WovenProxy.class"/>
+                                        </java>
+                                        <delete 
dir="${project.build.outputDirectory}/org/apache/aries/proxy/synthesizer"/>
+                                    </target>
+                                </configuration>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
 </project>
diff --git 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/ConstructorFinder.java
 b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AsmApiVersion.java
similarity index 50%
copy from 
proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/ConstructorFinder.java
copy to 
proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AsmApiVersion.java
index 71c44f82f..f478ae221 100644
--- 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/ConstructorFinder.java
+++ 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AsmApiVersion.java
@@ -1,53 +1,25 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.aries.proxy.impl.common;
-
-import static org.objectweb.asm.Opcodes.ACC_PRIVATE;
-
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.Type;
-
-public class ConstructorFinder extends ClassVisitor
-{
-
-  private boolean hasNoArgsConstructor = false;
-  
-  public boolean hasNoArgsConstructor()
-  {
-    return hasNoArgsConstructor;
-  }
-
-  public ConstructorFinder()
-  {
-    super(Opcodes.ASM9);
-  }
-
-  @Override
-  public MethodVisitor visitMethod(int access, String name, String desc, 
String signature,
-      String[] exceptions)
-  {
-    if("<init>".equals(name)) {
-      if(Type.getArgumentTypes(desc).length == 0 && (access & ACC_PRIVATE) == 
0)
-        hasNoArgsConstructor = true;
-    }
-    return null;
-  }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.aries.proxy.impl;
+
+import org.objectweb.asm.Opcodes;
+
+public class AsmApiVersion {
+    public static final int apiVersion = Opcodes.ASM9;
+}
diff --git 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyAdapter.java
 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyAdapter.java
index 60d1c59ed..5b680da97 100644
--- 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyAdapter.java
+++ 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyAdapter.java
@@ -37,6 +37,7 @@ import java.util.concurrent.Callable;
 
 import org.apache.aries.proxy.InvocationListener;
 import org.apache.aries.proxy.UnableToProxyException;
+import org.apache.aries.proxy.impl.AsmApiVersion;
 import org.apache.aries.proxy.impl.SystemModuleClassLoader;
 import org.apache.aries.proxy.impl.gen.Constants;
 import org.apache.aries.proxy.weaving.WovenProxy;
@@ -210,7 +211,7 @@ public abstract class AbstractWovenProxyAdapter extends 
ClassVisitor implements
    */
   public AbstractWovenProxyAdapter(ClassVisitor writer, String className,
       ClassLoader loader) {
-    super(Opcodes.ASM9, writer);
+    super(AsmApiVersion.apiVersion, writer);
     typeBeingWoven = Type.getType("L" + className.replace('.', '/') + ";");
     //By default we expect to see methods from a concrete class
     currentMethodDeclaringType = typeBeingWoven;
@@ -365,7 +366,7 @@ public abstract class AbstractWovenProxyAdapter extends 
ClassVisitor implements
       //to write our init code to static_init_UUID instead
       staticInitMethod = new Method("static_init_" + UU_ID, Type.VOID_TYPE, 
NO_ARGS);
       staticInitMethodFlags = staticInitMethodFlags | ACC_FINAL;
-      methodVisitorToReturn = new AdviceAdapter(Opcodes.ASM9, 
cv.visitMethod(access, name, desc, signature,
+      methodVisitorToReturn = new AdviceAdapter(AsmApiVersion.apiVersion, 
cv.visitMethod(access, name, desc, signature,
           exceptions), access, name, desc){
         @Override
         protected void onMethodEnter()
diff --git 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyMethodAdapter.java
 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyMethodAdapter.java
index 38bbe8aaa..add6b2199 100644
--- 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyMethodAdapter.java
+++ 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyMethodAdapter.java
@@ -35,6 +35,7 @@ import static org.objectweb.asm.Opcodes.IFNE;
 import java.util.Arrays;
 
 import org.apache.aries.proxy.InvocationListener;
+import org.apache.aries.proxy.impl.AsmApiVersion;
 import org.objectweb.asm.Label;
 import org.objectweb.asm.MethodVisitor;
 import org.objectweb.asm.Opcodes;
@@ -181,7 +182,7 @@ public abstract class AbstractWovenProxyMethodAdapter 
extends GeneratorAdapter
       String methodStaticFieldName, Method currentTransformMethod, Type 
typeBeingWoven,
       Type methodDeclaringType, boolean isMethodDeclaringTypeInterface, 
boolean isDefaultMethod)
   {
-    super(ASM9, mv, access, name, desc);
+    super(AsmApiVersion.apiVersion, mv, access, name, desc);
     this.methodStaticFieldName = methodStaticFieldName;
     this.currentTransformMethod = currentTransformMethod;
     returnType = currentTransformMethod.getReturnType();
diff --git 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/ConstructorFinder.java
 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/ConstructorFinder.java
index 71c44f82f..d3f9017bf 100644
--- 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/ConstructorFinder.java
+++ 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/ConstructorFinder.java
@@ -20,9 +20,9 @@ package org.apache.aries.proxy.impl.common;
 
 import static org.objectweb.asm.Opcodes.ACC_PRIVATE;
 
+import org.apache.aries.proxy.impl.AsmApiVersion;
 import org.objectweb.asm.ClassVisitor;
 import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
 import org.objectweb.asm.Type;
 
 public class ConstructorFinder extends ClassVisitor
@@ -35,9 +35,8 @@ public class ConstructorFinder extends ClassVisitor
     return hasNoArgsConstructor;
   }
 
-  public ConstructorFinder()
-  {
-    super(Opcodes.ASM9);
+  public ConstructorFinder() {
+    super(AsmApiVersion.apiVersion);
   }
 
   @Override
diff --git 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/MethodCopyingClassAdapter.java
 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/MethodCopyingClassAdapter.java
index 7c1234ba7..211a477eb 100644
--- 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/MethodCopyingClassAdapter.java
+++ 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/MethodCopyingClassAdapter.java
@@ -25,6 +25,7 @@ import java.util.Set;
 
 import org.apache.aries.proxy.FinalModifierException;
 import org.apache.aries.proxy.UnableToProxyException;
+import org.apache.aries.proxy.impl.AsmApiVersion;
 import org.objectweb.asm.AnnotationVisitor;
 import org.objectweb.asm.Attribute;
 import org.objectweb.asm.ClassReader;
@@ -64,7 +65,7 @@ final class MethodCopyingClassAdapter extends ClassVisitor 
implements Opcodes {
   public MethodCopyingClassAdapter(AbstractWovenProxyAdapter awpa, ClassLoader 
definingLoader,
       Class<?> superToCopy, Type overridingClassType, Set<Method> 
knownMethods, 
       Map<String, TypeMethod> transformedMethods) {
-    super(Opcodes.ASM9);
+    super(AsmApiVersion.apiVersion);
     this.wovenProxyAdapter = awpa;
     this.superToCopy = superToCopy;
     this.overridingClassType = overridingClassType;
@@ -178,7 +179,7 @@ private void methodHiddenException(String name) {
     
     public CopyingMethodAdapter(GeneratorAdapter mv, Type superType, 
         Method currentTransformMethod) {
-      super(Opcodes.ASM9);
+      super(AsmApiVersion.apiVersion);
       this.mv = mv;
       this.superType = superType;
       this.currentTransformMethod = currentTransformMethod;
diff --git 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/OSGiFriendlyClassVisitor.java
 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/OSGiFriendlyClassVisitor.java
index a06023ed9..03c3088c2 100644
--- 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/OSGiFriendlyClassVisitor.java
+++ 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/OSGiFriendlyClassVisitor.java
@@ -18,10 +18,10 @@
  */
 package org.apache.aries.proxy.impl.common;
 
+import org.apache.aries.proxy.impl.AsmApiVersion;
 import org.objectweb.asm.ClassVisitor;
 import org.objectweb.asm.ClassWriter;
 import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
 import org.objectweb.asm.commons.JSRInlinerAdapter;
 /**
  * We need to override ASM's default behaviour in {@link 
#getCommonSuperClass(String, String)}
@@ -35,7 +35,7 @@ public final class OSGiFriendlyClassVisitor extends 
ClassVisitor {
   
   public OSGiFriendlyClassVisitor(ClassVisitor cv, int arg1) {
    
-    super(Opcodes.ASM9, cv);
+    super(AsmApiVersion.apiVersion, cv);
 
     inlineJSR = arg1 == ClassWriter.COMPUTE_FRAMES;
   }
diff --git 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassAdapter.java
 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassAdapter.java
index 5c130e216..82d70c6bd 100644
--- 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassAdapter.java
+++ 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassAdapter.java
@@ -23,6 +23,7 @@ import java.io.InputStream;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationHandler;
 
+import org.apache.aries.proxy.impl.AsmApiVersion;
 import org.apache.aries.proxy.impl.ProxyUtils;
 import org.apache.aries.proxy.impl.SystemModuleClassLoader;
 import org.objectweb.asm.AnnotationVisitor;
@@ -66,7 +67,7 @@ public class ProxySubclassAdapter extends ClassVisitor 
implements Opcodes
   public ProxySubclassAdapter(ClassVisitor writer, String newClassName, 
ClassLoader loader)
   {
     // call the superclass constructor
-    super(Opcodes.ASM9, writer);
+    super(AsmApiVersion.apiVersion, writer);
     // the writer is now the cv in the superclass of ClassAdapter
 
     LOGGER.debug(Constants.LOG_ENTRY, "ProxySubclassAdapter", new Object[] { 
this, writer,
diff --git 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassGenerator.java
 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassGenerator.java
index 7f4ca56da..67571b935 100644
--- 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassGenerator.java
+++ 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassGenerator.java
@@ -40,10 +40,12 @@ import org.apache.aries.proxy.UnableToProxyException;
 import org.objectweb.asm.ClassReader;
 import org.objectweb.asm.ClassVisitor;
 import org.objectweb.asm.ClassWriter;
+import org.objenesis.Objenesis;
+import org.objenesis.ObjenesisStd;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import sun.reflect.ReflectionFactory;
+//import sun.reflect.ReflectionFactory;
 
 @SuppressWarnings("restriction")
 public class ProxySubclassGenerator
@@ -170,31 +172,16 @@ public class ProxySubclassGenerator
     try {
       Class<?> generatedProxySubclass = getProxySubclass(classToProxy, loader);
       LOGGER.debug("Getting the proxy subclass constructor");
-      // Because the newer JVMs throw a VerifyError if a class attempts to in 
a constructor other than their superclasses constructor,
-      // and because we can't know what objects/values we need to pass into 
the class being proxied constructor, 
-      // we instantiate the proxy class using the 
ReflectionFactory.newConstructorForSerialization() method which allows us to 
instantiate the 
-      // proxy class without calling the proxy class' constructor. It is in 
fact using the java.lang.Object constructor so is in effect 
-      // doing what we were doing before.
-      ReflectionFactory factory = ReflectionFactory.getReflectionFactory();
-      Constructor<?> constr = Object.class.getConstructor();
-      Constructor<?> subclassConstructor = 
factory.newConstructorForSerialization(generatedProxySubclass, constr);
-      proxySubclassInstance = subclassConstructor.newInstance();
-      
+      // Simple newInstance or constructor call cannot be used since 
constructor may be private
+      // or we may not know constructor parameters
+      Objenesis objenesis = new ObjenesisStd();
+      proxySubclassInstance = objenesis.newInstance(generatedProxySubclass);;
       Method setIHMethod = 
proxySubclassInstance.getClass().getMethod("setInvocationHandler", 
InvocationHandler.class);
       setIHMethod.invoke(proxySubclassInstance, ih);
       LOGGER.debug("Invoked proxy subclass constructor");
-    } catch (NoSuchMethodException nsme) {
-      LOGGER.debug(Constants.LOG_EXCEPTION, nsme);
-      throw new ProxyClassInstantiationException(classToProxy, nsme);
-    } catch (InvocationTargetException ite) {
-      LOGGER.debug(Constants.LOG_EXCEPTION, ite);
-      throw new ProxyClassInstantiationException(classToProxy, ite);
-    } catch (InstantiationException ie) {
-      LOGGER.debug(Constants.LOG_EXCEPTION, ie);
-      throw new ProxyClassInstantiationException(classToProxy, ie);
-    } catch (IllegalAccessException iae) {
-      LOGGER.debug(Constants.LOG_EXCEPTION, iae);
-      throw new ProxyClassInstantiationException(classToProxy, iae);
+    } catch (NoSuchMethodException | InvocationTargetException | 
IllegalAccessException e) {
+      LOGGER.debug(Constants.LOG_EXCEPTION, e);
+      throw new ProxyClassInstantiationException(classToProxy, e);
     } catch (VerifyError ve) {
         LOGGER.info(String.format("The no-argument constructor of class %s is 
private and therefore it may not be possible to generate a valid proxy.", 
                                   classToProxy));
diff --git 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassHierarchyAdapter.java
 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassHierarchyAdapter.java
index fdbc856a7..3324c3a03 100644
--- 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassHierarchyAdapter.java
+++ 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassHierarchyAdapter.java
@@ -20,6 +20,7 @@ package org.apache.aries.proxy.impl.gen;
 
 import java.util.Collection;
 
+import org.apache.aries.proxy.impl.AsmApiVersion;
 import org.objectweb.asm.AnnotationVisitor;
 import org.objectweb.asm.Attribute;
 import org.objectweb.asm.ClassVisitor;
@@ -47,7 +48,7 @@ public class ProxySubclassHierarchyAdapter extends 
ClassVisitor implements Opcod
 
   ProxySubclassHierarchyAdapter(ProxySubclassAdapter adapter, 
Collection<String> methodsToImplement)
   {
-    super(Opcodes.ASM9);
+    super(AsmApiVersion.apiVersion);
     LOGGER.debug(Constants.LOG_ENTRY, "ProxySubclassHeirarchyAdapter", new 
Object[] {
         this, adapter, methodsToImplement });
 
diff --git 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceCombiningClassAdapter.java
 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceCombiningClassAdapter.java
index e88c350d5..6da0fc3ca 100644
--- 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceCombiningClassAdapter.java
+++ 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceCombiningClassAdapter.java
@@ -25,6 +25,7 @@ import java.util.Collection;
 import java.util.List;
 
 import org.apache.aries.proxy.UnableToProxyException;
+import org.apache.aries.proxy.impl.AsmApiVersion;
 import org.apache.aries.proxy.impl.ProxyUtils;
 import org.apache.aries.proxy.impl.common.AbstractWovenProxyAdapter;
 import org.apache.aries.proxy.impl.common.OSGiFriendlyClassVisitor;
@@ -61,7 +62,7 @@ final class InterfaceCombiningClassAdapter extends 
ClassVisitor implements Opcod
    */
   InterfaceCombiningClassAdapter(String className,
       ClassLoader loader, Class<?> superclass, Collection<Class<?>> 
interfaces) {
-    super(Opcodes.ASM9);
+    super(AsmApiVersion.apiVersion);
     writer = new OSGiFriendlyClassWriter(ClassWriter.COMPUTE_FRAMES, loader);
     ClassVisitor cv = new OSGiFriendlyClassVisitor(writer, 
ClassWriter.COMPUTE_FRAMES);
     adapter = new InterfaceUsingWovenProxyAdapter(cv, className, loader);
diff --git 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceProxyGenerator.java
 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceProxyGenerator.java
index f1bd2b6a6..065935563 100644
--- 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceProxyGenerator.java
+++ 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceProxyGenerator.java
@@ -33,6 +33,7 @@ import java.util.concurrent.Callable;
 import org.apache.aries.proxy.FinalModifierException;
 import org.apache.aries.proxy.InvocationListener;
 import org.apache.aries.proxy.UnableToProxyException;
+import org.apache.aries.proxy.impl.AsmApiVersion;
 import org.objectweb.asm.ClassVisitor;
 import org.objectweb.asm.Opcodes;
 import org.osgi.framework.Bundle;
@@ -48,7 +49,7 @@ public final class InterfaceProxyGenerator extends 
ClassVisitor implements Opcod
 
   public InterfaceProxyGenerator()
   {
-    super(Opcodes.ASM9);
+    super(AsmApiVersion.apiVersion);
     
   }
 
diff --git 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/weaving/SyntheticSerialVerUIDAdder.java
 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/weaving/SyntheticSerialVerUIDAdder.java
index f04bf374d..6749432ca 100644
--- 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/weaving/SyntheticSerialVerUIDAdder.java
+++ 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/weaving/SyntheticSerialVerUIDAdder.java
@@ -22,6 +22,7 @@ import static org.objectweb.asm.Opcodes.ASM9;
 
 import java.lang.reflect.Modifier;
 
+import org.apache.aries.proxy.impl.AsmApiVersion;
 import org.objectweb.asm.FieldVisitor;
 import org.objectweb.asm.Opcodes;
 import org.objectweb.asm.Type;
@@ -43,7 +44,7 @@ class SyntheticSerialVerUIDAdder extends 
SerialVersionUIDAdder {
   private boolean hasSVUID;
 
   public SyntheticSerialVerUIDAdder(WovenProxyAdapter cv) {
-    super(ASM9, cv);
+    super(AsmApiVersion.apiVersion, cv);
     wpa = cv;
   }
 
diff --git 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/synthesizer/Synthesizer.java
 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/synthesizer/Synthesizer.java
index c66e9e173..baf359dbc 100644
--- 
a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/synthesizer/Synthesizer.java
+++ 
b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/synthesizer/Synthesizer.java
@@ -22,6 +22,7 @@ package org.apache.aries.proxy.synthesizer;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 
+import org.apache.aries.proxy.impl.AsmApiVersion;
 import org.objectweb.asm.ClassReader;
 import org.objectweb.asm.ClassVisitor;
 import org.objectweb.asm.ClassWriter;
@@ -82,7 +83,7 @@ public class Synthesizer
 
     public CustomClassVisitor( ClassVisitor cv)
     {
-      super(Opcodes.ASM8, cv);
+      super(AsmApiVersion.apiVersion, cv);
       
     }
     @Override
diff --git a/proxy/proxy-itests/LICENSE b/proxy/proxy-itests/LICENSE
deleted file mode 100644
index 6b0b1270f..000000000
--- a/proxy/proxy-itests/LICENSE
+++ /dev/null
@@ -1,203 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
diff --git a/proxy/proxy-itests/NOTICE b/proxy/proxy-itests/NOTICE
deleted file mode 100644
index 424644d05..000000000
--- a/proxy/proxy-itests/NOTICE
+++ /dev/null
@@ -1,8 +0,0 @@
-
-Apache Aries
-Copyright 2009-2011 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-
diff --git a/proxy/proxy-itests/pom.xml b/proxy/proxy-itests/pom.xml
index ae43f70d8..fce0873d4 100644
--- a/proxy/proxy-itests/pom.xml
+++ b/proxy/proxy-itests/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.aries</groupId>
         <artifactId>parent</artifactId>
-        <version>2.1.1</version>
+        <version>3.0.1-SNAPSHOT</version>
         <relativePath>../../parent/pom.xml</relativePath>
     </parent>
 
@@ -43,20 +43,19 @@
     </scm>
 
     <properties>
+        <aries.skip.version.check>true</aries.skip.version.check>
+
         <asm.version>9.9.1</asm.version>
-        <depends-maven-plugin.version>1.5.0</depends-maven-plugin.version>
         <javax.inject.version>1</javax.inject.version>
-        <maven-compiler-plugin.version>3.14.1</maven-compiler-plugin.version>
+        <objenesis.version>3.4</objenesis.version>
         
<org.apache.aries.proxy.api.version>1.1.2-SNAPSHOT</org.apache.aries.proxy.api.version>
         
<org.apache.aries.proxy.version>1.1.15-SNAPSHOT</org.apache.aries.proxy.version>
         
<org.apache.aries.testsupport.unit.version>2.0.0-SNAPSHOT</org.apache.aries.testsupport.unit.version>
         <org.eclipse.osgi.version>3.23.100</org.eclipse.osgi.version>
-        <osgi.cmpn.version>4.3.1</osgi.cmpn.version>
         <pax-exam.version>4.13.5</pax-exam.version>
         <pax-logging.version>2.2.10</pax-logging.version>
         <pax-tinybundles.version>2.1.1</pax-tinybundles.version>
         <pax-url.version>2.6.17</pax-url.version>
-        <slf4j-api.version>1.7.7</slf4j-api.version>
     </properties>
 
     <dependencies>
@@ -66,23 +65,33 @@
             <version>${org.eclipse.osgi.version}</version>
             <scope>provided</scope>
         </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>osgi.cmpn</artifactId>
-            <version>${osgi.cmpn.version}</version>
-            <scope>provided</scope>
-        </dependency>
         <dependency>
             <groupId>org.apache.aries.proxy</groupId>
             <artifactId>org.apache.aries.proxy.api</artifactId>
-            <scope>test</scope>
             <version>${org.apache.aries.proxy.api.version}</version>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.aries.proxy</groupId>
             <artifactId>org.apache.aries.proxy</artifactId>
-            <scope>test</scope>
             <version>${org.apache.aries.proxy.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.objenesis</groupId>
+            <artifactId>objenesis</artifactId>
+            <version>${objenesis.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.cmpn</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.aries.testsupport</groupId>
@@ -127,12 +136,6 @@
             <artifactId>tinybundles</artifactId>
             <version>${pax-tinybundles.version}</version>
         </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.13.2</version>
-            <scope>test</scope>
-        </dependency>
 
         <dependency>
             <groupId>org.ow2.asm</groupId>
@@ -180,24 +183,30 @@
 
     <build>
         <plugins>
-            <plugin>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>${maven-compiler-plugin.version}</version>
-            </plugin>
             <plugin>
                 <groupId>org.apache.servicemix.tooling</groupId>
                 <artifactId>depends-maven-plugin</artifactId>
-                <!-- TODO ARIES-2165: remove configuration when the newest 
parent pom is used -->
-                <version>${depends-maven-plugin.version}</version>
-                <executions>
-                    <execution>
-                        <id>generate-depends-file</id>
-                        <goals>
-                            <goal>generate-depends-file</goal>
-                        </goals>
-                    </execution>
-                </executions>
             </plugin>
         </plugins>
     </build>
+
+    <profiles>
+        <profile>
+            <id>java9To21</id>
+            <activation>
+                <jdk>(8,22)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-surefire-plugin</artifactId>
+                        <configuration>
+                            <argLine>--add-opens 
java.base/java.lang=ALL-UNNAMED</argLine>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git 
a/proxy/proxy-itests/src/test/java/org/apache/aries/proxy/itests/AbstractProxyTest.java
 
b/proxy/proxy-itests/src/test/java/org/apache/aries/proxy/itests/AbstractProxyTest.java
index dfa974d07..165db1760 100644
--- 
a/proxy/proxy-itests/src/test/java/org/apache/aries/proxy/itests/AbstractProxyTest.java
+++ 
b/proxy/proxy-itests/src/test/java/org/apache/aries/proxy/itests/AbstractProxyTest.java
@@ -294,6 +294,7 @@ public abstract class AbstractProxyTest extends 
AbstractIntegrationTest {
               configurePaxUrlLocalMavenRepoIfNeeded(),
               failOnUnresolvableBundles(),
               addAsmBundles(),
+              mavenBundle("org.objenesis", "objenesis").versionAsInProject(),
               mavenBundle("org.apache.aries.testsupport", 
"org.apache.aries.testsupport.unit").versionAsInProject(),
               mavenBundle("org.apache.aries.proxy", 
"org.apache.aries.proxy.api").versionAsInProject(),
               mavenBundle("org.apache.aries.proxy", 
"org.apache.aries.proxy").versionAsInProject()
diff --git a/subsystem/subsystem-itests/pom.xml 
b/subsystem/subsystem-itests/pom.xml
index 1350bf5bb..9f2e86c3b 100644
--- a/subsystem/subsystem-itests/pom.xml
+++ b/subsystem/subsystem-itests/pom.xml
@@ -43,6 +43,7 @@
         <maven-antrun-plugin.version>3.2.0</maven-antrun-plugin.version>
         <maven-jar-plugin.version>3.5.0</maven-jar-plugin.version>
         <maven-surefire-plugin.version>3.5.4</maven-surefire-plugin.version>
+        <objenesis.version>3.4</objenesis.version>
         
<org.apache.aries.subsystem.modeller.version>1.0.0-SNAPSHOT</org.apache.aries.subsystem.modeller.version>
         
<org.apache.aries.blueprint.version>1.10.4-SNAPSHOT</org.apache.aries.blueprint.version>
         
<org.apache.aries.proxy.version>1.1.15-SNAPSHOT</org.apache.aries.proxy.version>
@@ -135,6 +136,12 @@
             <version>${org.apache.aries.proxy.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.objenesis</groupId>
+            <artifactId>objenesis</artifactId>
+            <version>${objenesis.version}</version>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>org.apache.aries.subsystem</groupId>
             <artifactId>org.apache.aries.subsystem.api</artifactId>
diff --git 
a/subsystem/subsystem-itests/src/test/java/org/apache/aries/subsystem/itests/SubsystemTest.java
 
b/subsystem/subsystem-itests/src/test/java/org/apache/aries/subsystem/itests/SubsystemTest.java
index d54902036..55bf3d43b 100644
--- 
a/subsystem/subsystem-itests/src/test/java/org/apache/aries/subsystem/itests/SubsystemTest.java
+++ 
b/subsystem/subsystem-itests/src/test/java/org/apache/aries/subsystem/itests/SubsystemTest.java
@@ -169,7 +169,8 @@ public abstract class SubsystemTest extends 
AbstractIntegrationTest {
         return CoreOptions.composite(
                 mavenBundle("org.apache.aries.subsystem", 
"org.apache.aries.subsystem.modeller").versionAsInProject(),
                        mavenBundle("org.apache.aries.blueprint",   
"org.apache.aries.blueprint.core").versionAsInProject(),
-                       mavenBundle("org.apache.aries.proxy",       
"org.apache.aries.proxy").versionAsInProject());
+                       mavenBundle("org.apache.aries.proxy",       
"org.apache.aries.proxy").versionAsInProject(),
+                               mavenBundle("org.objenesis", 
"objenesis").versionAsInProject());
     }
 
     /**

Reply via email to