diff --git a/.github/workflows/blueprint.yml b/.github/workflows/blueprint.yml
index 4bc1c3da12..9e35293bb8 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 26af8df775..83f3398306 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@v5
- - 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@v4
+ 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 7f1c526385..30e16ca82b 100644
--- a/blueprint/itests/blueprint-itests/pom.xml
+++ b/blueprint/itests/blueprint-itests/pom.xml
@@ -57,6 +57,7 @@
2.1.1
1.5.0
3.5.4
+ 3.4
1.1.15-SNAPSHOT
1.0.1-SNAPSHOT
2.0.0-SNAPSHOT
@@ -108,6 +109,12 @@
org.apache.aries.proxy
${org.apache.aries.proxy.version}
+
+ org.objenesis
+ objenesis
+ ${objenesis.version}
+ test
+
org.apache.servicemix.bundles
org.apache.servicemix.bundles.spring-context
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 ba6982afa2..9cf339d1c4 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 static Option blueprintBundles(boolean startBlueprint) {
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 c882641536..1a31e1de34 100644
--- a/jmx/jmx-itests/pom.xml
+++ b/jmx/jmx-itests/pom.xml
@@ -41,6 +41,7 @@
9.9
2.1.1
1
+ 3.4
1.1.1-SNAPSHOT
1.0.1-SNAPSHOT
1.3.0-SNAPSHOT
@@ -144,6 +145,12 @@
${org.apache.aries.proxy.version}
test
+
+ org.objenesis
+ objenesis
+ ${objenesis.version}
+ test
+
org.ow2.asm
asm
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 a7125b717e..b79e7d953d 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 Option[] configuration() {
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 6b0b1270ff..0000000000
--- 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 424644d055..0000000000
--- 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 9fff22d746..922ed3b0be 100644
--- a/proxy/proxy-api/pom.xml
+++ b/proxy/proxy-api/pom.xml
@@ -24,7 +24,7 @@
org.apache.aries
parent
- 2.1.1
+ 3.0.0
../../parent/pom.xml
@@ -51,18 +51,13 @@
1.1.1
-
-
- true
- 4.3.1
+ 0.3.2-SNAPSHOT
org.osgi
osgi.core
- ${osgi.core.version}
provided
diff --git a/proxy/proxy-impl/LICENSE b/proxy/proxy-impl/LICENSE
deleted file mode 100644
index 6b0b1270ff..0000000000
--- 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 424644d055..0000000000
--- 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 230da35226..5c60a6acd5 100644
--- a/proxy/proxy-impl/pom.xml
+++ b/proxy/proxy-impl/pom.xml
@@ -24,7 +24,7 @@
org.apache.aries
parent
- 2.1.1
+ 3.0.0
../../parent/pom.xml
@@ -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,
*
org.apache.aries.proxy.impl*
+ 0.3.2-SNAPSHOT
1.1.14
9.9
@@ -71,9 +73,8 @@
1.3
4.13.2
4.11.0
- 1.1.1
- 4.3.1
- 4.3.1
+ 3.4
+ 1.1.2-SNAPSHOT
@@ -83,6 +84,12 @@
${org.apache.aries.proxy.api.version}
provided
+
+ org.objenesis
+ objenesis
+ ${objenesis.version}
+ true
+
org.ow2.asm
asm
@@ -104,13 +111,11 @@
org.osgi
osgi.core
- ${osgi.core.version}
provided
org.osgi
osgi.cmpn
- ${osgi.cmpn.version}
provided
@@ -152,49 +157,6 @@
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
-
- org.apache.maven.plugins
- maven-antrun-plugin
-
-
- process-classes
-
-
-
-
-
-
-
-
-
-
-
-
- run
-
-
-
-
-
- org.apache.aries.versioning
- org.apache.aries.versioning.plugin
-
-
- default-verify
-
- none
-
-
-
org.apache.felix
maven-bundle-plugin
@@ -216,4 +178,91 @@
+
+
+ java9To21
+
+ (8,22)
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+
+ --add-opens java.base/java.lang=ALL-UNNAMED
+
+
+
+
+
+
+
+ java8To17
+
+ [1.8,18)
+
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+
+
+ process-classes
+
+
+
+
+
+
+
+
+
+
+ run
+
+
+
+
+
+
+
+
+ java21+
+
+ 21
+
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+
+
+ process-classes
+
+
+
+
+
+
+
+
+
+
+
+
+ run
+
+
+
+
+
+
+
+
+
diff --git a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AsmApiVersion.java b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AsmApiVersion.java
new file mode 100644
index 0000000000..f478ae2219
--- /dev/null
+++ b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AsmApiVersion.java
@@ -0,0 +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;
+
+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 60d1c59ed3..5b680da97d 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 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 final MethodVisitor visitMethod(int access, String name, String desc,
//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 38bbe8aaaa..add6b2199a 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 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 AbstractWovenProxyMethodAdapter(MethodVisitor mv, int access, String name
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 71c44f82f3..d3f9017bf2 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 @@
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 boolean hasNoArgsConstructor()
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 7c1234ba7f..211a477eb5 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 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 knownMethods,
Map transformedMethods) {
- super(Opcodes.ASM9);
+ super(AsmApiVersion.apiVersion);
this.wovenProxyAdapter = awpa;
this.superToCopy = superToCopy;
this.overridingClassType = overridingClassType;
@@ -178,7 +179,7 @@ private static final class CopyingMethodAdapter extends MethodVisitor {
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 a06023ed98..03c3088c2e 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 5c130e216c..82d70c6bd2 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.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 7f4ca56da1..67571b9357 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.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 static Object newProxySubclassInstance(Class> classToProxy, ClassLoader
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 fdbc856a7e..3324c3a03d 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 @@
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 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 e88c350d5f..6da0fc3ca1 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.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> 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 f1bd2b6a69..0659355635 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 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 f04bf374d1..6749432caf 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 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 c66e9e1739..baf359dbcf 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 @@
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 static class CustomClassVisitor extends ClassVisitor
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 6b0b1270ff..0000000000
--- 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 424644d055..0000000000
--- 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 b0cdec1d63..4c2da01e6a 100644
--- a/proxy/proxy-itests/pom.xml
+++ b/proxy/proxy-itests/pom.xml
@@ -24,7 +24,7 @@
org.apache.aries
parent
- 2.1.1
+ 3.0.1-SNAPSHOT
../../parent/pom.xml
@@ -43,20 +43,19 @@
+ true
+
9.9
- 1.5.0
1
- 3.14.1
+ 3.4
1.1.2-SNAPSHOT
1.1.15-SNAPSHOT
2.0.0-SNAPSHOT
3.23.100
- 4.3.1
4.13.5
2.2.10
2.1.1
2.6.17
- 1.7.7
@@ -66,23 +65,33 @@
${org.eclipse.osgi.version}
provided
-
- org.osgi
- osgi.cmpn
- ${osgi.cmpn.version}
- provided
-
org.apache.aries.proxy
org.apache.aries.proxy.api
- test
${org.apache.aries.proxy.api.version}
+ test
org.apache.aries.proxy
org.apache.aries.proxy
- test
${org.apache.aries.proxy.version}
+ test
+
+
+ org.objenesis
+ objenesis
+ ${objenesis.version}
+ test
+
+
+ org.osgi
+ osgi.cmpn
+ provided
+
+
+ junit
+ junit
+ provided
org.apache.aries.testsupport
@@ -127,12 +136,6 @@
tinybundles
${pax-tinybundles.version}
-
- junit
- junit
- 4.13.2
- test
-
org.ow2.asm
@@ -180,24 +183,30 @@
-
- maven-compiler-plugin
- ${maven-compiler-plugin.version}
-
org.apache.servicemix.tooling
depends-maven-plugin
-
- ${depends-maven-plugin.version}
-
-
- generate-depends-file
-
- generate-depends-file
-
-
-
+
+
+
+ java9To21
+
+ (8,22)
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ --add-opens java.base/java.lang=ALL-UNNAMED
+
+
+
+
+
+
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 dfa974d077..165db1760e 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 @@ protected Option proxyOptions() {
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 c74a499400..9a3246eb9a 100644
--- a/subsystem/subsystem-itests/pom.xml
+++ b/subsystem/subsystem-itests/pom.xml
@@ -43,6 +43,7 @@
3.2.0
3.4.2
3.5.4
+ 3.4
1.0.0-SNAPSHOT
1.10.4-SNAPSHOT
1.1.15-SNAPSHOT
@@ -135,6 +136,12 @@
${org.apache.aries.proxy.version}
test
+
+ org.objenesis
+ objenesis
+ ${objenesis.version}
+ test
+
org.apache.aries.subsystem
org.apache.aries.subsystem.api
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 d549020362..55bf3d43bd 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 @@ private Option modelerBundles() {
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());
}
/**