You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gn...@apache.org on 2023/11/30 12:44:31 UTC
(felix-dev) branch master updated: [FELIX-6502] Support 11+ java for ipojo (#129)
This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/felix-dev.git
The following commit(s) were added to refs/heads/master by this push:
new 032cb55d61 [FELIX-6502] Support 11+ java for ipojo (#129)
032cb55d61 is described below
commit 032cb55d6109f3092ca1fa4a87d1449b5672cb25
Author: Alexander Shaklein <ch...@gmail.com>
AuthorDate: Thu Nov 30 15:44:23 2023 +0300
[FELIX-6502] Support 11+ java for ipojo (#129)
Co-authored-by: Guillaume Nodet <gn...@gmail.com>
---
ipojo/manipulator/annotations/pom.xml | 16 ++-
ipojo/manipulator/bnd-ipojo-plugin/pom.xml | 15 +-
ipojo/manipulator/ipojo-ant-task/pom.xml | 17 ++-
ipojo/manipulator/manipulator-bom/pom.xml | 27 ++--
.../ipojo-manipulator-creation-test/pom.xml | 2 +-
.../pom.xml | 2 +-
.../ipojo-manipulator-manipulation-test/pom.xml | 2 +-
.../manipulator-it/online-manipulator-it/pom.xml | 2 +-
ipojo/manipulator/manipulator-it/pom.xml | 38 ++---
ipojo/manipulator/manipulator/pom.xml | 55 ++++++--
.../felix/ipojo/manipulation/ClassChecker.java | 25 +++-
.../felix/ipojo/manipulation/ClassManipulator.java | 72 ++++++----
.../ipojo/manipulation/ConstructorCodeAdapter.java | 31 +++--
.../ipojo/manipulation/InnerClassAdapter.java | 2 +-
.../ipojo/manipulation/InnerClassChecker.java | 2 +-
.../felix/ipojo/manipulation/Manipulator.java | 10 ++
.../ipojo/manipulation/MethodCodeAdapter.java | 2 +-
.../annotation/ClassMetadataCollector.java | 2 +-
.../annotation/FieldMetadataCollector.java | 2 +-
.../annotation/MethodMetadataCollector.java | 2 +-
.../model/discovery/HandlerBindingDiscovery.java | 2 +-
.../model/parser/AnnotationTypeVisitor.java | 2 +-
.../model/parser/replay/AnnotationRecorder.java | 2 +-
.../annotation/visitor/ComponentVisitor.java | 2 +-
.../annotation/visitor/ControllerVisitor.java | 2 +-
.../annotation/visitor/FieldPropertyVisitor.java | 2 +-
.../visitor/HandlerDeclarationVisitor.java | 2 +-
.../annotation/visitor/HandlerVisitor.java | 2 +-
.../annotation/visitor/InstantiateVisitor.java | 2 +-
.../annotation/visitor/LifecycleVisitor.java | 2 +-
.../annotation/visitor/MethodPropertyVisitor.java | 2 +-
.../visitor/PostRegistrationVisitor.java | 2 +-
.../visitor/PostUnregistrationVisitor.java | 2 +-
.../annotation/visitor/ProvidesVisitor.java | 6 +-
.../annotation/visitor/RequiresVisitor.java | 2 +-
.../visitor/ServiceControllerVisitor.java | 2 +-
.../annotation/visitor/UpdatedVisitor.java | 2 +-
.../visitor/bind/AbstractBindVisitor.java | 2 +-
.../annotation/visitor/generic/GenericVisitor.java | 2 +-
.../visitor/generic/SubArrayVisitor.java | 2 +-
.../visitor/stereotype/FieldStereotypeVisitor.java | 2 +-
.../stereotype/MethodStereotypeVisitor.java | 2 +-
.../stereotype/ParameterStereotypeVisitor.java | 2 +-
.../visitor/stereotype/TypeStereotypeVisitor.java | 2 +-
.../manipulator/util/ChainedAnnotationVisitor.java | 2 +-
.../ipojo/manipulation/ClassCheckerTestCase.java | 2 +-
.../felix/ipojo/manipulation/ManipulatorTest.java | 153 +++++++++++++--------
.../src/test/java/test/InterfaceWithStatic.java | 33 +++++
.../src/test/java/test/PojoWithFinalArray.java | 34 +++++
.../test/java/test/PojoWithStaticInterface.java | 32 +++++
.../java/test/frames/CryptoServiceSingleton.java | 5 +-
ipojo/manipulator/maven-ipojo-plugin/pom.xml | 52 ++++++-
.../src/main/resources/archetype-resources/pom.xml | 2 +-
ipojo/manipulator/online-manipulator/pom.xml | 34 +++--
ipojo/manipulator/pom.xml | 6 +-
ipojo/metadata/pom.xml | 6 +-
56 files changed, 513 insertions(+), 226 deletions(-)
diff --git a/ipojo/manipulator/annotations/pom.xml b/ipojo/manipulator/annotations/pom.xml
index 636e2032d1..de6635c681 100644
--- a/ipojo/manipulator/annotations/pom.xml
+++ b/ipojo/manipulator/annotations/pom.xml
@@ -16,12 +16,11 @@
specific language governing permissions and limitations
under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.apache.felix</groupId>
<artifactId>felix-parent</artifactId>
- <version>2.1</version>
- <relativePath>../../../pom/pom.xml</relativePath>
+ <version>8</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>org.apache.felix.ipojo.annotations</artifactId>
@@ -42,8 +41,15 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
- <source>1.5</source>
- <target>1.5</target>
+ <source>8</source>
+ <target>8</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <additionalJOption>-Xdoclint:none</additionalJOption>
</configuration>
</plugin>
</plugins>
diff --git a/ipojo/manipulator/bnd-ipojo-plugin/pom.xml b/ipojo/manipulator/bnd-ipojo-plugin/pom.xml
index 1ae769aa87..aba6d96909 100644
--- a/ipojo/manipulator/bnd-ipojo-plugin/pom.xml
+++ b/ipojo/manipulator/bnd-ipojo-plugin/pom.xml
@@ -17,13 +17,12 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.felix</groupId>
<artifactId>felix-parent</artifactId>
- <version>2.1</version>
- <relativePath>../../../pom/pom.xml</relativePath>
+ <version>8</version>
</parent>
<artifactId>bnd-ipojo-plugin</artifactId>
@@ -51,6 +50,12 @@
<version>1.8.5</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.13.2</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<dependencyManagement>
@@ -71,8 +76,8 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
- <source>1.5</source>
- <target>1.5</target>
+ <source>8</source>
+ <target>8</target>
</configuration>
</plugin>
diff --git a/ipojo/manipulator/ipojo-ant-task/pom.xml b/ipojo/manipulator/ipojo-ant-task/pom.xml
index 06813a44f0..66bbbc4ed0 100644
--- a/ipojo/manipulator/ipojo-ant-task/pom.xml
+++ b/ipojo/manipulator/ipojo-ant-task/pom.xml
@@ -16,12 +16,11 @@
specific language governing permissions and limitations
under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.apache.felix</groupId>
<artifactId>felix-parent</artifactId>
- <version>2.1</version>
- <relativePath>../../../pom/pom.xml</relativePath>
+ <version>8</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>org.apache.felix.ipojo.ant</artifactId>
@@ -49,7 +48,7 @@
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
- <version>2.12.0</version>
+ <version>2.12.2</version>
</dependency>
<dependency>
<groupId>ant</groupId>
@@ -86,7 +85,7 @@
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
- <version>2.3.7</version>
+ <version>5.1.9</version>
<extensions>true</extensions>
<configuration>
<instructions>
@@ -122,7 +121,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
- <version>2.10</version>
<configuration>
<enableRulesSummary>false</enableRulesSummary>
<violationSeverity>warning</violationSeverity>
@@ -161,6 +159,13 @@
</excludes>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <additionalJOption>-Xdoclint:none</additionalJOption>
+ </configuration>
+ </plugin>
</plugins>
</build>
</project>
diff --git a/ipojo/manipulator/manipulator-bom/pom.xml b/ipojo/manipulator/manipulator-bom/pom.xml
index 0a6a8e9c12..d6fe1fdcf0 100644
--- a/ipojo/manipulator/manipulator-bom/pom.xml
+++ b/ipojo/manipulator/manipulator-bom/pom.xml
@@ -18,22 +18,21 @@
specific language governing permissions and limitations
under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.felix</groupId>
<artifactId>felix-parent</artifactId>
- <version>2.1</version>
- <relativePath>../../../pom/pom.xml</relativePath>
+ <version>8</version>
</parent>
<artifactId>ipojo-manipulator-bom</artifactId>
- <version>1.12.2-SNAPSHOT</version>
+ <version>1.12.2-SNAPSHOT</version>
<name>Apache Felix iPOJO Manipulator BOM</name>
<packaging>pom</packaging>
<properties>
- <asm.version>5.0.2</asm.version>
+ <asm.version>9.6</asm.version>
<metadata.version>1.6.0</metadata.version>
</properties>
@@ -51,14 +50,18 @@
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
- <artifactId>asm-all</artifactId>
+ <artifactId>asm</artifactId>
+ <version>${asm.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.ow2.asm</groupId>
+ <artifactId>asm-commons</artifactId>
+ <version>${asm.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.ow2.asm</groupId>
+ <artifactId>asm-util</artifactId>
<version>${asm.version}</version>
- <exclusions>
- <exclusion>
- <groupId>org.ow2.asm</groupId>
- <artifactId>asm-tree</artifactId>
- </exclusion>
- </exclusions>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
diff --git a/ipojo/manipulator/manipulator-it/ipojo-manipulator-creation-test/pom.xml b/ipojo/manipulator/manipulator-it/ipojo-manipulator-creation-test/pom.xml
index 6e44f0918b..55c4418d77 100644
--- a/ipojo/manipulator/manipulator-it/ipojo-manipulator-creation-test/pom.xml
+++ b/ipojo/manipulator/manipulator-it/ipojo-manipulator-creation-test/pom.xml
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.apache.felix</groupId>
diff --git a/ipojo/manipulator/manipulator-it/ipojo-manipulator-manipulation-metadata-test/pom.xml b/ipojo/manipulator/manipulator-it/ipojo-manipulator-manipulation-metadata-test/pom.xml
index f113d02e64..ecdb609c65 100644
--- a/ipojo/manipulator/manipulator-it/ipojo-manipulator-manipulation-metadata-test/pom.xml
+++ b/ipojo/manipulator/manipulator-it/ipojo-manipulator-manipulation-metadata-test/pom.xml
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.apache.felix</groupId>
diff --git a/ipojo/manipulator/manipulator-it/ipojo-manipulator-manipulation-test/pom.xml b/ipojo/manipulator/manipulator-it/ipojo-manipulator-manipulation-test/pom.xml
index c96bfb1b8e..fed34b57c6 100644
--- a/ipojo/manipulator/manipulator-it/ipojo-manipulator-manipulation-test/pom.xml
+++ b/ipojo/manipulator/manipulator-it/ipojo-manipulator-manipulation-test/pom.xml
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.apache.felix</groupId>
diff --git a/ipojo/manipulator/manipulator-it/online-manipulator-it/pom.xml b/ipojo/manipulator/manipulator-it/online-manipulator-it/pom.xml
index 5746a2e208..27e1a47a1c 100644
--- a/ipojo/manipulator/manipulator-it/online-manipulator-it/pom.xml
+++ b/ipojo/manipulator/manipulator-it/online-manipulator-it/pom.xml
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.apache.felix</groupId>
diff --git a/ipojo/manipulator/manipulator-it/pom.xml b/ipojo/manipulator/manipulator-it/pom.xml
index 0311b9d505..743100bb99 100644
--- a/ipojo/manipulator/manipulator-it/pom.xml
+++ b/ipojo/manipulator/manipulator-it/pom.xml
@@ -16,12 +16,11 @@
specific language governing permissions and limitations
under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.apache.felix</groupId>
<artifactId>felix-parent</artifactId>
- <version>2.1</version>
- <relativePath>../../../pom/pom.xml</relativePath>
+ <version>8</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -34,8 +33,8 @@
<!-- Tests are enabled only when the 'test' profile is activated -->
<skipTestExecution>true</skipTestExecution>
- <exam.version>3.0.1</exam.version>
- <url.version>1.5.1</url.version>
+ <exam.version>3.0.3</exam.version>
+ <url.version>1.5.2</url.version>
<felix.version>4.4.0</felix.version>
<equinox.version>3.9.0.v20130529-1710</equinox.version>
@@ -66,17 +65,16 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <version>2.5.1</version>
<configuration>
- <source>1.7</source>
- <target>1.7</target>
+ <source>1.8</source>
+ <target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.servicemix.tooling</groupId>
<artifactId>depends-maven-plugin</artifactId>
- <version>1.2</version>
+ <version>1.5.0</version>
<executions>
<execution>
<id>generate-config</id>
@@ -113,7 +111,6 @@
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
- <version>2.4</version>
<configuration>
<skip>true</skip>
</configuration>
@@ -122,7 +119,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
- <version>2.15</version>
<configuration>
<skipTests>${skipTestExecution}</skipTests>
<systemPropertyVariables>
@@ -169,21 +165,21 @@
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
- <version>1.2.0</version>
+ <version>1.2.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
- <version>1.2.0</version>
+ <version>1.2.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>4.9</version>
+ <version>4.13.2</version>
<scope>test</scope>
</dependency>
@@ -199,6 +195,12 @@
<version>1.0.0</version>
</dependency>
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ <version>2.12.2</version>
+ </dependency>
+
<!-- The tiny bundle extension must be before the manipulator version
to use the right version of the manipulator -->
<dependency>
@@ -246,7 +248,7 @@
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
- <version>2.4</version>
+ <version>2.7</version>
</dependency>
<dependency>
@@ -259,6 +261,10 @@
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </exclusion>
</exclusions>
</dependency>
@@ -324,7 +330,7 @@
<repositories>
<repository>
<id>knopflerfish-releases</id>
- <url>http://www.knopflerfish.org/maven2</url>
+ <url>https://www.knopflerfish.org/maven2</url>
</repository>
</repositories>
<dependencies>
diff --git a/ipojo/manipulator/manipulator/pom.xml b/ipojo/manipulator/manipulator/pom.xml
index e3ffa6b655..790f5c04ad 100644
--- a/ipojo/manipulator/manipulator/pom.xml
+++ b/ipojo/manipulator/manipulator/pom.xml
@@ -16,12 +16,11 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.apache.felix</groupId>
<artifactId>felix-parent</artifactId>
- <version>2.1</version>
- <relativePath>../../../pom/pom.xml</relativePath>
+ <version>8</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>bundle</packaging>
@@ -35,13 +34,29 @@
<properties>
<ipojo.import.packages>[1.12.1,2.0.0)</ipojo.import.packages>
+ <asm.version>9.6</asm.version>
</properties>
<dependencies>
<dependency>
<groupId>org.ow2.asm</groupId>
- <artifactId>asm-all</artifactId>
- <version>5.0.2</version>
+ <artifactId>asm</artifactId>
+ <version>${asm.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.ow2.asm</groupId>
+ <artifactId>asm-tree</artifactId>
+ <version>${asm.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.ow2.asm</groupId>
+ <artifactId>asm-commons</artifactId>
+ <version>${asm.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.ow2.asm</groupId>
+ <artifactId>asm-util</artifactId>
+ <version>${asm.version}</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
@@ -68,7 +83,7 @@
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
- <version>2.4</version>
+ <version>2.7</version>
<scope>test</scope>
</dependency>
<dependency>
@@ -82,7 +97,14 @@
<!-- used in some tests -->
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
- <version>1.9</version>
+ <version>1.13</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
@@ -97,7 +119,7 @@
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
- <version>2.3.7</version>
+ <version>5.1.9</version>
<extensions>true</extensions>
<configuration>
<instructions>
@@ -119,7 +141,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
- <version>2.10</version>
<configuration>
<enableRulesSummary>false</enableRulesSummary>
<violationSeverity>warning</violationSeverity>
@@ -131,8 +152,8 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>8</source>
+ <target>8</target>
</configuration>
</plugin>
@@ -160,7 +181,17 @@
</excludes>
</configuration>
</plugin>
-
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <additionalJOption>-Xdoclint:none</additionalJOption>
+ </configuration>
+ </plugin>
</plugins>
</build>
</project>
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/ClassChecker.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/ClassChecker.java
index a83f0f7877..4e3646de38 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/ClassChecker.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/ClassChecker.java
@@ -46,6 +46,11 @@ public class ClassChecker extends ClassVisitor implements Opcodes {
*/
private Map<String, String> m_fields = new TreeMap<String, String>();
+ /**
+ * Collection of final fields
+ */
+ private Set<String> m_finalFields=new HashSet<>();
+
/**
* Method List of method descriptor discovered in the component class.
*/
@@ -73,7 +78,7 @@ public class ClassChecker extends ClassVisitor implements Opcodes {
private int m_classVersion;
public ClassChecker() {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
}
/**
@@ -117,6 +122,9 @@ public class ClassChecker extends ClassVisitor implements Opcodes {
} else {
m_fields.put(name, type.getClassName());
}
+ if ((access & ACC_FINAL) == ACC_FINAL) {
+ m_finalFields.add(name);
+ }
return null;
}
@@ -300,6 +308,9 @@ public class ClassChecker extends ClassVisitor implements Opcodes {
return m_fields;
}
+ public Set<String> getFinalFields(){
+ return m_finalFields;
+ }
/**
* Get collected methods.
*
@@ -345,7 +356,7 @@ public class ClassChecker extends ClassVisitor implements Opcodes {
* @param md the method descriptor of the visited method.
*/
private MethodInfoCollector(MethodDescriptor md) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
m_method = md;
}
@@ -386,7 +397,7 @@ public class ClassChecker extends ClassVisitor implements Opcodes {
m_method.addParameterAnnotation(id, ann);
return ann;
}
-
+
/*
* It is harmless to keep injected parameter annotations on original constructor
* for correct property resolution in case of re-manipulation
@@ -456,7 +467,7 @@ public class ClassChecker extends ClassVisitor implements Opcodes {
* @param visible the visibility of the annotation at runtime
*/
public AnnotationDescriptor(String name, boolean visible) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
m_name = name;
m_visible = visible;
}
@@ -469,7 +480,7 @@ public class ClassChecker extends ClassVisitor implements Opcodes {
* @param desc the descriptor of the annotation
*/
public AnnotationDescriptor(String name, String desc) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
m_name = name;
m_visible = true;
m_desc = desc;
@@ -641,7 +652,7 @@ public class ClassChecker extends ClassVisitor implements Opcodes {
* @param name the name of the attribute.
*/
public ArrayAttribute(String name) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
m_name = name;
}
@@ -833,7 +844,7 @@ public class ClassChecker extends ClassVisitor implements Opcodes {
private class InnerClassAssignedToStaticFieldDetector extends MethodVisitor {
public InnerClassAssignedToStaticFieldDetector() {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
}
@Override
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/ClassManipulator.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/ClassManipulator.java
index de5fd3f70c..be509a82d9 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/ClassManipulator.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/ClassManipulator.java
@@ -19,18 +19,13 @@
package org.apache.felix.ipojo.manipulation;
-import java.util.*;
-
import org.apache.felix.ipojo.manipulation.ClassChecker.AnnotationDescriptor;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.Type;
+import org.objectweb.asm.*;
import org.objectweb.asm.commons.GeneratorAdapter;
import org.objectweb.asm.tree.LocalVariableNode;
+import java.util.*;
+
/**
* iPOJO Class Adapter.
* This class adapt the visited class to link the class with the container.
@@ -104,6 +99,11 @@ public class ClassManipulator extends ClassVisitor implements Opcodes {
*/
private Set<String> m_fields;
+ /**
+ * Set of final fields detected in the class
+ */
+ private Set<String> m_finalFields;
+
/**
* List of methods contained in the class.
* This set contains method id.
@@ -141,9 +141,10 @@ public class ClassManipulator extends ClassVisitor implements Opcodes {
* @param manipulator : the manipulator having analyzed the class.
*/
public ClassManipulator(ClassVisitor visitor, Manipulator manipulator) {
- super(Opcodes.ASM5, visitor);
+ super(Opcodes.ASM9, visitor);
m_manipulator = manipulator;
m_fields = manipulator.getFields().keySet();
+ m_finalFields = manipulator.getFinalFields();
m_visitedMethods = manipulator.getMethods();
}
@@ -208,7 +209,7 @@ public class ClassManipulator extends ClassVisitor implements Opcodes {
// Insert the new constructor
MethodVisitor mv = super.visitMethod(ACC_PRIVATE, "<init>", newDesc, signature, exceptions);
- return new ConstructorCodeAdapter(mv, m_owner, m_fields, ACC_PRIVATE, name, newDesc, m_superclass);
+ return new ConstructorCodeAdapter(mv, m_owner, m_fields, m_finalFields, ACC_PRIVATE, name, newDesc, m_superclass);
}
if ((access & ACC_SYNTHETIC) == ACC_SYNTHETIC && name.startsWith("access$")) {
@@ -274,7 +275,7 @@ public class ClassManipulator extends ClassVisitor implements Opcodes {
*/
public FieldVisitor visitField(final int access, final String name, final String desc, final String signature, final Object value) {
if ((access & ACC_STATIC) == 0) {
- FieldVisitor flag = cv.visitField(Opcodes.ACC_PRIVATE, FIELD_FLAG_PREFIX + name, "Z", null, null);
+ FieldVisitor flag = cv.visitField(ACC_PRIVATE, FIELD_FLAG_PREFIX + name, "Z", null, null);
flag.visitEnd();
Type type = Type.getType(desc);
@@ -285,7 +286,7 @@ public class ClassManipulator extends ClassVisitor implements Opcodes {
// Generates setter method
String sDesc = "(" + desc + ")V";
- createArraySetter(name, sDesc);
+ createArraySetter(access, name, sDesc);
} else {
// Generate the getter method
@@ -294,9 +295,8 @@ public class ClassManipulator extends ClassVisitor implements Opcodes {
// Generates setter method
String sDesc = "(" + desc + ")V";
- createSimpleSetter(name, sDesc, type);
+ createSimpleSetter(access, name, sDesc, type);
}
-
}
return cv.visitField(access, name, desc, signature, value);
}
@@ -784,13 +784,14 @@ public class ClassManipulator extends ClassVisitor implements Opcodes {
/**
* Create a getter method for an array.
+ * @param access
* @param name : field name
* @param desc : method description
*/
- private void createArraySetter(String name, String desc) {
+ private void createArraySetter(int access, String name, String desc) {
MethodVisitor mv = cv.visitMethod(0, "__set" + name, desc, null, null);
mv.visitCode();
-
+ boolean isFinal = (access & ACC_FINAL) == ACC_FINAL;
String internalType = desc.substring(1);
internalType = internalType.substring(0, internalType.length() - 2);
@@ -801,9 +802,11 @@ public class ClassManipulator extends ClassVisitor implements Opcodes {
Label l2 = new Label();
mv.visitJumpInsn(IFNE, l2);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ALOAD, 1);
- mv.visitFieldInsn(PUTFIELD, m_owner, name, internalType);
+ if(!isFinal) {
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitFieldInsn(PUTFIELD, m_owner, name, internalType);
+ }
mv.visitInsn(RETURN);
mv.visitLabel(l2);
@@ -1045,13 +1048,15 @@ public class ClassManipulator extends ClassVisitor implements Opcodes {
/**
* Create the setter method for one property. The name of the method is _set+name of the field
+ * @param access
* @param name : name of the field representing a property
* @param desc : description of the setter method
* @param type : type of the property
*/
- private void createSimpleSetter(String name, String desc, Type type) {
+ private void createSimpleSetter(int access, String name, String desc, Type type) {
MethodVisitor mv = cv.visitMethod(0, "__set" + name, desc, null, null);
mv.visitCode();
+ boolean isFinal = (access & ACC_FINAL) == ACC_FINAL;
switch (type.getSort()) {
case Type.BOOLEAN:
@@ -1060,6 +1065,7 @@ public class ClassManipulator extends ClassVisitor implements Opcodes {
case Type.SHORT:
case Type.INT:
case Type.FLOAT:
+
String internalName = ManipulationProperty.PRIMITIVE_BOXING_INFORMATION[type.getSort()][0];
String boxingType = ManipulationProperty.PRIMITIVE_BOXING_INFORMATION[type.getSort()][1];
@@ -1070,10 +1076,11 @@ public class ClassManipulator extends ClassVisitor implements Opcodes {
mv.visitFieldInsn(GETFIELD, m_owner, FIELD_FLAG_PREFIX + name, "Z");
Label l22 = new Label();
mv.visitJumpInsn(IFNE, l22);
-
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(type.getOpcode(ILOAD), 1);
- mv.visitFieldInsn(PUTFIELD, m_owner, name, internalName);
+ if (!isFinal) {
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(type.getOpcode(ILOAD), 1);
+ mv.visitFieldInsn(PUTFIELD, m_owner, name, internalName);
+ }
mv.visitInsn(RETURN);
mv.visitLabel(l22);
@@ -1083,6 +1090,7 @@ public class ClassManipulator extends ClassVisitor implements Opcodes {
mv.visitMethodInsn(INVOKESPECIAL, boxingType, "<init>", "(" + internalName + ")V", false);
mv.visitVarInsn(ASTORE, 2);
+
Label l2 = new Label();
mv.visitLabel(l2);
mv.visitVarInsn(ALOAD, 0);
@@ -1111,9 +1119,11 @@ public class ClassManipulator extends ClassVisitor implements Opcodes {
Label l23 = new Label();
mv.visitJumpInsn(IFNE, l23);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(type.getOpcode(ILOAD), 1);
- mv.visitFieldInsn(PUTFIELD, m_owner, name, internalName);
+ if(!isFinal) {
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(type.getOpcode(ILOAD), 1);
+ mv.visitFieldInsn(PUTFIELD, m_owner, name, internalName);
+ }
mv.visitInsn(RETURN);
mv.visitLabel(l23);
@@ -1144,9 +1154,11 @@ public class ClassManipulator extends ClassVisitor implements Opcodes {
Label l24 = new Label();
mv.visitJumpInsn(IFNE, l24);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ALOAD, 1);
- mv.visitFieldInsn(PUTFIELD, m_owner, name, "L" + type.getInternalName() + ";");
+ if (!isFinal) {
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitFieldInsn(PUTFIELD, m_owner, name, "L" + type.getInternalName() + ";");
+ }
mv.visitInsn(RETURN);
mv.visitLabel(l24);
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/ConstructorCodeAdapter.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/ConstructorCodeAdapter.java
index 94b12056d0..097d9f887d 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/ConstructorCodeAdapter.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/ConstructorCodeAdapter.java
@@ -60,23 +60,30 @@ public class ConstructorCodeAdapter extends GeneratorAdapter implements Opcodes
*/
private Set<String> m_fields;
+ /**
+ * Set of contained final fields
+ */
+ private Set<String> m_finalFields;
+
/**
* PropertyCodeAdapter constructor.
* A new FiledCodeAdapter should be create for each method visit.
*
- * @param mv the MethodVisitor
- * @param owner the name of the class
- * @param fields the list of contained fields
- * @param access the constructor access
- * @param desc the constructor descriptor
- * @param name the name
+ * @param mv the MethodVisitor
+ * @param owner the name of the class
+ * @param fields the list of contained fields
+ * @param finalFields the list of contained final fields
+ * @param access the constructor access
+ * @param name the name
+ * @param desc the constructor descriptor
*/
- public ConstructorCodeAdapter(final MethodVisitor mv, final String owner, Set<String> fields, int access, String name, String desc, String superClass) {
- super(Opcodes.ASM5, mv, access, name, desc);
+ public ConstructorCodeAdapter(final MethodVisitor mv, final String owner, Set<String> fields, Set<String> finalFields, int access, String name, String desc, String superClass) {
+ super(Opcodes.ASM9, mv, access, name, desc);
m_owner = owner;
m_superDetected = false;
m_fields = fields;
+ m_finalFields = finalFields;
m_superClass = superClass;
}
@@ -158,6 +165,12 @@ public class ConstructorCodeAdapter extends GeneratorAdapter implements Opcodes
mv.visitMethodInsn(INVOKEVIRTUAL, owner, "__get" + name, gDesc, false);
return;
} else if (opcode == PUTFIELD) {
+ if (m_finalFields.contains(name)) {
+ mv.visitFieldInsn(PUTFIELD, owner, name, desc);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, owner, name, desc);
+ }
String sDesc = "(" + desc + ")V";
mv.visitMethodInsn(INVOKEVIRTUAL, owner, "__set" + name, sDesc, false);
return;
@@ -200,7 +213,7 @@ public class ConstructorCodeAdapter extends GeneratorAdapter implements Opcodes
"(Lorg/apache/felix/ipojo/InstanceManager;)V", false);
} else {
- if (opcode == INVOKEINTERFACE) {
+ if (opcode == INVOKEINTERFACE || (opcode == INVOKESTATIC && itf)) {
mv.visitMethodInsn(opcode, owner, name, desc, true);
} else {
mv.visitMethodInsn(opcode, owner, name, desc, false);
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/InnerClassAdapter.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/InnerClassAdapter.java
index ecdc9ef755..c437fcd867 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/InnerClassAdapter.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/InnerClassAdapter.java
@@ -72,7 +72,7 @@ public class InnerClassAdapter extends ClassVisitor implements Opcodes {
*/
public InnerClassAdapter(String name, ClassVisitor visitor, String outerClassName,
Manipulator manipulator) {
- super(Opcodes.ASM5, visitor);
+ super(Opcodes.ASM9, visitor);
m_name = name;
m_simpleName = m_name.substring(m_name.indexOf("$") + 1);
m_outer = outerClassName;
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/InnerClassChecker.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/InnerClassChecker.java
index 886dea24e7..2fbbef8cad 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/InnerClassChecker.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/InnerClassChecker.java
@@ -34,7 +34,7 @@ public class InnerClassChecker extends ClassVisitor implements Opcodes {
private final Manipulator m_manipulator;
public InnerClassChecker(String name, Manipulator manipulator) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
m_name = name;
m_manipulator = manipulator;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/Manipulator.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/Manipulator.java
index ba3a4e2779..de92381400 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/Manipulator.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/Manipulator.java
@@ -46,6 +46,11 @@ public class Manipulator {
*/
private Map<String, String> m_fields;
+ /**
+ * Store th visited final fields
+ */
+ private Set<String> m_finalFields;
+
/**
* Store the interface implemented by the class.
*/
@@ -101,6 +106,7 @@ public class Manipulator {
is.close();
m_fields = ck.getFields(); // Get visited fields (contains only POJO fields)
+ m_finalFields = ck.getFinalFields();
m_className = ck.getClassName();
// Get interfaces and super class.
@@ -219,6 +225,10 @@ public class Manipulator {
return m_fields;
}
+ public Set<String> getFinalFields(){
+ return m_finalFields;
+ }
+
public List<MethodDescriptor> getMethods() {
return m_methods;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/MethodCodeAdapter.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/MethodCodeAdapter.java
index 5b2402693c..09cc1ea621 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/MethodCodeAdapter.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/MethodCodeAdapter.java
@@ -53,7 +53,7 @@ public class MethodCodeAdapter extends GeneratorAdapter implements Opcodes {
* @param fields : Contained fields
*/
public MethodCodeAdapter(final MethodVisitor mv, final String owner, int access, String name, String desc, Set<String> fields) {
- super(Opcodes.ASM5, mv, access, name, desc);
+ super(Opcodes.ASM9, mv, access, name, desc);
m_owner = owner;
m_fields = fields;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/ClassMetadataCollector.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/ClassMetadataCollector.java
index 73460496f7..632b8dd64d 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/ClassMetadataCollector.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/ClassMetadataCollector.java
@@ -58,7 +58,7 @@ public class ClassMetadataCollector extends ClassVisitor {
private Element instanceMetadata;
public ClassMetadataCollector(BindingRegistry registry, Reporter reporter) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.registry = registry;
this.reporter = reporter;
node = new ClassNode();
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/FieldMetadataCollector.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/FieldMetadataCollector.java
index 638f778b91..184c714890 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/FieldMetadataCollector.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/FieldMetadataCollector.java
@@ -46,7 +46,7 @@ public class FieldMetadataCollector extends FieldVisitor {
private FieldNode node;
public FieldMetadataCollector(ComponentWorkbench workbench, FieldNode node) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.workbench = workbench;
this.node = node;
this.registry = workbench.getBindingRegistry();
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/MethodMetadataCollector.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/MethodMetadataCollector.java
index 556ba2ad9b..fed92f2a75 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/MethodMetadataCollector.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/MethodMetadataCollector.java
@@ -47,7 +47,7 @@ public class MethodMetadataCollector extends MethodVisitor {
private MethodNode node;
public MethodMetadataCollector(ComponentWorkbench workbench, MethodNode node, Reporter reporter) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.workbench = workbench;
this.node = node;
this.registry = workbench.getBindingRegistry();
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/model/discovery/HandlerBindingDiscovery.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/model/discovery/HandlerBindingDiscovery.java
index 7c2249f98b..36c4058909 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/model/discovery/HandlerBindingDiscovery.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/model/discovery/HandlerBindingDiscovery.java
@@ -41,7 +41,7 @@ public class HandlerBindingDiscovery extends AnnotationVisitor implements Annota
* Constructs a new {@link org.objectweb.asm.AnnotationVisitor}.
*/
public HandlerBindingDiscovery() {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
}
public AnnotationVisitor visitAnnotation(final String desc) {
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/model/parser/AnnotationTypeVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/model/parser/AnnotationTypeVisitor.java
index e0b4e58118..4d0fe580cc 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/model/parser/AnnotationTypeVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/model/parser/AnnotationTypeVisitor.java
@@ -34,7 +34,7 @@ public class AnnotationTypeVisitor extends ClassVisitor {
private AnnotationType annotationType;
public AnnotationTypeVisitor() {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
}
@Override
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/model/parser/replay/AnnotationRecorder.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/model/parser/replay/AnnotationRecorder.java
index cb0e812f93..c5b95746f4 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/model/parser/replay/AnnotationRecorder.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/model/parser/replay/AnnotationRecorder.java
@@ -33,7 +33,7 @@ public class AnnotationRecorder extends AnnotationVisitor implements Replay {
private List<Replay> m_replays = new ArrayList<Replay>();
public AnnotationRecorder() {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
}
public void visit(final String name, final Object value) {
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/ComponentVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/ComponentVisitor.java
index 20a35bd07e..2cc8c358cf 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/ComponentVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/ComponentVisitor.java
@@ -45,7 +45,7 @@ public class ComponentVisitor extends AnnotationVisitor {
private ComponentWorkbench workbench;
public ComponentVisitor(ComponentWorkbench workbench, Reporter reporter) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.workbench = workbench;
this.reporter = reporter;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/ControllerVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/ControllerVisitor.java
index 88081f0f23..5f2cd814aa 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/ControllerVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/ControllerVisitor.java
@@ -37,7 +37,7 @@ public class ControllerVisitor extends AnnotationVisitor {
private String field;
public ControllerVisitor(ComponentWorkbench workbench, String field) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.workbench = workbench;
this.field = field;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/FieldPropertyVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/FieldPropertyVisitor.java
index 1d6bec945e..6a8035e707 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/FieldPropertyVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/FieldPropertyVisitor.java
@@ -82,7 +82,7 @@ public class FieldPropertyVisitor extends AnnotationVisitor {
* @param field : field name.
*/
public FieldPropertyVisitor(String field, Element parent) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
m_parent = parent;
m_field = field;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/HandlerDeclarationVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/HandlerDeclarationVisitor.java
index 2c5278362d..2b864943f3 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/HandlerDeclarationVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/HandlerDeclarationVisitor.java
@@ -53,7 +53,7 @@ public class HandlerDeclarationVisitor extends AnnotationVisitor {
private Reporter reporter;
public HandlerDeclarationVisitor(ComponentWorkbench workbench, DocumentBuilder builder, Reporter reporter) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.workbench = workbench;
this.builder = builder;
this.reporter = reporter;
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/HandlerVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/HandlerVisitor.java
index ae9786113b..a41d6e93d9 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/HandlerVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/HandlerVisitor.java
@@ -41,7 +41,7 @@ public class HandlerVisitor extends AnnotationVisitor {
private Reporter reporter;
public HandlerVisitor(ComponentWorkbench workbench, Reporter reporter) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.workbench = workbench;
this.reporter = reporter;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/InstantiateVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/InstantiateVisitor.java
index 7cf43cba76..d0445858cc 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/InstantiateVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/InstantiateVisitor.java
@@ -38,7 +38,7 @@ public class InstantiateVisitor extends AnnotationVisitor {
private ComponentWorkbench workbench;
public InstantiateVisitor(ComponentWorkbench workbench) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.workbench = workbench;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/LifecycleVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/LifecycleVisitor.java
index 08cf6601fb..3dfc5feddd 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/LifecycleVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/LifecycleVisitor.java
@@ -42,7 +42,7 @@ public class LifecycleVisitor extends AnnotationVisitor {
private Transition transition;
public LifecycleVisitor(ComponentWorkbench workbench, String name, Transition transition) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.workbench = workbench;
this.name = name;
this.transition = transition;
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/MethodPropertyVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/MethodPropertyVisitor.java
index 898c740864..c263bbf29d 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/MethodPropertyVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/MethodPropertyVisitor.java
@@ -73,7 +73,7 @@ public class MethodPropertyVisitor extends AnnotationVisitor {
* @param method : attached method.
*/
public MethodPropertyVisitor(Element parent, String method) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
m_parent = parent;
m_method = method;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/PostRegistrationVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/PostRegistrationVisitor.java
index 00a6c22394..1eebaecfcc 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/PostRegistrationVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/PostRegistrationVisitor.java
@@ -35,7 +35,7 @@ public class PostRegistrationVisitor extends AnnotationVisitor {
private String name;
public PostRegistrationVisitor(ComponentWorkbench workbench, String name) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.workbench = workbench;
this.name = name;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/PostUnregistrationVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/PostUnregistrationVisitor.java
index cd24451af4..1022754b6d 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/PostUnregistrationVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/PostUnregistrationVisitor.java
@@ -35,7 +35,7 @@ public class PostUnregistrationVisitor extends AnnotationVisitor {
private String name;
public PostUnregistrationVisitor(ComponentWorkbench workbench, String name) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.workbench = workbench;
this.name = name;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/ProvidesVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/ProvidesVisitor.java
index dcce9969e3..2e318c8ef6 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/ProvidesVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/ProvidesVisitor.java
@@ -42,7 +42,7 @@ public class ProvidesVisitor extends AnnotationVisitor {
private Element m_prov = new Element("provides", "");
public ProvidesVisitor(ComponentWorkbench workbench) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.workbench = workbench;
}
@@ -75,7 +75,7 @@ public class ProvidesVisitor extends AnnotationVisitor {
} else if (name.equals("properties")) {
// Create a new simple visitor to visit the nested ServiceProperty annotations
// Collected properties are collected in m_prov
- return new AnnotationVisitor(Opcodes.ASM5) {
+ return new AnnotationVisitor(Opcodes.ASM9) {
public AnnotationVisitor visitAnnotation(String ignored, String desc) {
return new FieldPropertyVisitor(m_prov);
}
@@ -104,7 +104,7 @@ public class ProvidesVisitor extends AnnotationVisitor {
public InterfaceArrayVisitor() {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
}
/**
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/RequiresVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/RequiresVisitor.java
index 9213949707..e23f5bb6dc 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/RequiresVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/RequiresVisitor.java
@@ -106,7 +106,7 @@ public class RequiresVisitor extends AnnotationVisitor {
* @param name : field name.
*/
public RequiresVisitor(ComponentWorkbench workbench, String name) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.workbench = workbench;
this.m_field = name;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/ServiceControllerVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/ServiceControllerVisitor.java
index 422bb9dd79..eceb7e53a3 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/ServiceControllerVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/ServiceControllerVisitor.java
@@ -48,7 +48,7 @@ public class ServiceControllerVisitor extends AnnotationVisitor {
* @param field : field name.
*/
public ServiceControllerVisitor(String field, Element provides) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.provides = provides;
controller.addAttribute(new Attribute("field", field));
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/UpdatedVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/UpdatedVisitor.java
index dd4b379174..dd1cf17330 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/UpdatedVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/UpdatedVisitor.java
@@ -36,7 +36,7 @@ public class UpdatedVisitor extends AnnotationVisitor {
private String name;
public UpdatedVisitor(ComponentWorkbench workbench, String name) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.workbench = workbench;
this.name = name;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/bind/AbstractBindVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/bind/AbstractBindVisitor.java
index a00bed6990..2d4fbe3296 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/bind/AbstractBindVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/bind/AbstractBindVisitor.java
@@ -36,7 +36,7 @@ public abstract class AbstractBindVisitor extends AnnotationVisitor {
protected Action action;
public AbstractBindVisitor(ComponentWorkbench workbench, Action action) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.workbench = workbench;
this.action = action;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/generic/GenericVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/generic/GenericVisitor.java
index caf12169e1..d452b06542 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/generic/GenericVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/generic/GenericVisitor.java
@@ -35,7 +35,7 @@ public class GenericVisitor extends AnnotationVisitor {
protected Element element;
public GenericVisitor(Element element) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.element = element;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/generic/SubArrayVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/generic/SubArrayVisitor.java
index 6186382160..1d3da18fba 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/generic/SubArrayVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/generic/SubArrayVisitor.java
@@ -54,7 +54,7 @@ public class SubArrayVisitor extends AnnotationVisitor {
* @param name : attribute name.
*/
public SubArrayVisitor(Element elem, String name) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
m_elem = elem;
m_name = name;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/stereotype/FieldStereotypeVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/stereotype/FieldStereotypeVisitor.java
index e63debeae7..0ad132624f 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/stereotype/FieldStereotypeVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/stereotype/FieldStereotypeVisitor.java
@@ -34,7 +34,7 @@ public class FieldStereotypeVisitor extends AnnotationVisitor {
private final AnnotationType m_annotationType;
public FieldStereotypeVisitor(final FieldVisitor delegate, AnnotationType annotationType) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.m_delegate = delegate;
m_annotationType = annotationType;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/stereotype/MethodStereotypeVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/stereotype/MethodStereotypeVisitor.java
index 716eec20d6..54ec56906b 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/stereotype/MethodStereotypeVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/stereotype/MethodStereotypeVisitor.java
@@ -34,7 +34,7 @@ public class MethodStereotypeVisitor extends AnnotationVisitor {
private final AnnotationType m_annotationType;
public MethodStereotypeVisitor(final MethodVisitor delegate, AnnotationType annotationType) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.m_delegate = delegate;
m_annotationType = annotationType;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/stereotype/ParameterStereotypeVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/stereotype/ParameterStereotypeVisitor.java
index c766040b7b..afc7df4060 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/stereotype/ParameterStereotypeVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/stereotype/ParameterStereotypeVisitor.java
@@ -37,7 +37,7 @@ public class ParameterStereotypeVisitor extends AnnotationVisitor {
private final AnnotationType m_annotationType;
public ParameterStereotypeVisitor(final MethodVisitor delegate, final int index, AnnotationType annotationType) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.m_delegate = delegate;
this.index = index;
m_annotationType = annotationType;
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/stereotype/TypeStereotypeVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/stereotype/TypeStereotypeVisitor.java
index a2e9ee2bde..2f94c3626b 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/stereotype/TypeStereotypeVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/stereotype/TypeStereotypeVisitor.java
@@ -36,7 +36,7 @@ public class TypeStereotypeVisitor extends AnnotationVisitor {
private final AnnotationType m_annotationType;
public TypeStereotypeVisitor(final ClassVisitor delegate, AnnotationType annotationType) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
this.m_delegate = delegate;
m_annotationType = annotationType;
}
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/util/ChainedAnnotationVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/util/ChainedAnnotationVisitor.java
index f7da4e0deb..5fa4a81b10 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/util/ChainedAnnotationVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/util/ChainedAnnotationVisitor.java
@@ -35,7 +35,7 @@ public class ChainedAnnotationVisitor extends AnnotationVisitor {
private List<AnnotationVisitor> m_visitors = new ArrayList<AnnotationVisitor>();
public ChainedAnnotationVisitor() {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM9);
}
public List<AnnotationVisitor> getVisitors() {
diff --git a/ipojo/manipulator/manipulator/src/test/java/org/apache/felix/ipojo/manipulation/ClassCheckerTestCase.java b/ipojo/manipulator/manipulator/src/test/java/org/apache/felix/ipojo/manipulation/ClassCheckerTestCase.java
index 773a2a3244..c14627a0da 100644
--- a/ipojo/manipulator/manipulator/src/test/java/org/apache/felix/ipojo/manipulation/ClassCheckerTestCase.java
+++ b/ipojo/manipulator/manipulator/src/test/java/org/apache/felix/ipojo/manipulation/ClassCheckerTestCase.java
@@ -91,7 +91,7 @@ public class ClassCheckerTestCase extends TestCase {
assertEquals(1, annotations.size());
ClassChecker.AnnotationDescriptor annotationDescriptor = annotations.get(0);
MethodVisitor mv = mock(MethodVisitor.class);
- when(mv.visitAnnotation(desc, true)).thenReturn(new AnnotationVisitor(Opcodes.ASM5) {});
+ when(mv.visitAnnotation(desc, true)).thenReturn(new AnnotationVisitor(Opcodes.ASM9) {});
annotationDescriptor.visitAnnotation(mv);
}
diff --git a/ipojo/manipulator/manipulator/src/test/java/org/apache/felix/ipojo/manipulation/ManipulatorTest.java b/ipojo/manipulator/manipulator/src/test/java/org/apache/felix/ipojo/manipulation/ManipulatorTest.java
index 03f9b4ad67..c12a082630 100644
--- a/ipojo/manipulator/manipulator/src/test/java/org/apache/felix/ipojo/manipulation/ManipulatorTest.java
+++ b/ipojo/manipulator/manipulator/src/test/java/org/apache/felix/ipojo/manipulation/ManipulatorTest.java
@@ -19,24 +19,45 @@
package org.apache.felix.ipojo.manipulation;
-import java.io.*;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.Arrays;
-
import junit.framework.Assert;
import junit.framework.TestCase;
-
import org.apache.felix.ipojo.InstanceManager;
import org.apache.felix.ipojo.Pojo;
-import org.junit.Ignore;
import org.mockito.Mockito;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.util.CheckClassAdapter;
+import java.io.*;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+
public class ManipulatorTest extends TestCase {
+ public static byte[] getBytesFromFile(File file) throws IOException {
+ InputStream is = new FileInputStream(file);
+ long length = file.length();
+ byte[] bytes = new byte[(int) length];
+
+ // Read in the bytes
+ int offset = 0;
+ int numRead = 0;
+ while (offset < bytes.length
+ && (numRead = is.read(bytes, offset, bytes.length - offset)) >= 0) {
+ offset += numRead;
+ }
+
+ // Ensure all the bytes have been read in
+ if (offset < bytes.length) {
+ throw new IOException("Could not completely read file " + file.getName());
+ }
+
+ // Close the input stream and return bytes
+ is.close();
+ return bytes;
+ }
+
public void testClusterDaemon() throws Exception {
Manipulator manipulator = new Manipulator(this.getClass().getClassLoader());
byte[] origin = getBytesFromFile(new File("target/test-classes/test/ClusterDaemon.class"));
@@ -69,6 +90,7 @@ public class ManipulatorTest extends TestCase {
manipulator.prepare(origin);
byte[] clazz = manipulator.manipulate(origin);
+
ManipulatedClassLoader classloader = new ManipulatedClassLoader("test.frames.CryptoServiceSingleton", clazz);
//Assert.assertNotNull(manipulator.getManipulationMetadata());
@@ -82,7 +104,9 @@ public class ManipulatorTest extends TestCase {
Class cl = classloader.findClass("test.frames.CryptoServiceSingleton");
Assert.assertNotNull(cl);
- Object instance = cl.newInstance();
+ final Constructor constructor = cl.getDeclaredConstructor();
+ constructor.setAccessible(true);
+ Object instance = constructor.newInstance();
Method method = cl.getMethod("encryptAESWithCBC", String.class, String.class);
final String salt = "0000000000000000";
@@ -96,6 +120,45 @@ public class ManipulatorTest extends TestCase {
}
+ public void testManipulatingPojoWithStaticInterface() throws Exception {
+ Manipulator manipulator = new Manipulator(this.getClass().getClassLoader());
+ byte[] origin = getBytesFromFile(new File("target/test-classes/test/PojoWithStaticInterface.class"));
+ manipulator.prepare(origin);
+ byte[] clazz = manipulator.manipulate(origin);
+ ManipulatedClassLoader classloader = new ManipulatedClassLoader("test.PojoWithStaticInterface", clazz);
+ Class cl = classloader.findClass("test.PojoWithStaticInterface");
+ Assert.assertNotNull(cl);
+ Assert.assertNotNull(manipulator.getManipulationMetadata());
+
+ final Constructor constructor = cl.getDeclaredConstructor();
+ Assert.assertNotNull(constructor);
+ final Object instance = constructor.newInstance();
+ Assert.assertNotNull(instance);
+
+ Method method = cl.getMethod("doSomething", new Class[0]);
+ Assert.assertEquals(((String) method.invoke(instance, new Object[0])), "test");
+ }
+
+ public void testManipulatingPojoWithFinalArray() throws Exception {
+ Manipulator manipulator = new Manipulator(this.getClass().getClassLoader());
+ byte[] origin = getBytesFromFile(new File("target/test-classes/test/PojoWithFinalArray.class"));
+ manipulator.prepare(origin);
+ byte[] clazz = manipulator.manipulate(origin);
+
+ ManipulatedClassLoader classloader = new ManipulatedClassLoader("test.PojoWithFinalArray", clazz);
+ Class cl = classloader.findClass("test.PojoWithFinalArray");
+ Assert.assertNotNull(cl);
+ Assert.assertNotNull(manipulator.getManipulationMetadata());
+
+ final Constructor constructor = cl.getDeclaredConstructor();
+ Assert.assertNotNull(constructor);
+ final Object instance = constructor.newInstance();
+ Assert.assertNotNull(instance);
+
+ Method method = cl.getMethod("doSomething", new Class[0]);
+ Assert.assertEquals(((String) method.invoke(instance, new Object[0])), "test");
+ }
+
public void testManipulatingTheSimplePojo() throws Exception {
Manipulator manipulator = new Manipulator(this.getClass().getClassLoader());
byte[] origin = getBytesFromFile(new File("target/test-classes/test/SimplePojo.class"));
@@ -117,7 +180,7 @@ public class ManipulatorTest extends TestCase {
Constructor[] csts = cl.getDeclaredConstructors();
for (int i = 0; i < csts.length; i++) {
System.out.println(Arrays.asList(csts[i].getParameterTypes()));
- if (csts[i].getParameterTypes().length == 1 &&
+ if (csts[i].getParameterTypes().length == 1 &&
csts[i].getParameterTypes()[0].equals(InstanceManager.class)) {
found = true;
cst = csts[i];
@@ -140,7 +203,7 @@ public class ManipulatorTest extends TestCase {
Assert.assertTrue(Arrays.asList(cl.getInterfaces()).contains(Pojo.class));
cst.setAccessible(true);
- Object pojo = cst.newInstance(new Object[] {new InstanceManager()});
+ Object pojo = cst.newInstance(new Object[]{new InstanceManager()});
Assert.assertNotNull(pojo);
Assert.assertTrue(pojo instanceof Pojo);
@@ -171,7 +234,7 @@ public class ManipulatorTest extends TestCase {
Constructor[] csts = cl.getDeclaredConstructors();
for (int i = 0; i < csts.length; i++) {
System.out.println(Arrays.asList(csts[i].getParameterTypes()));
- if (csts[i].getParameterTypes().length == 1 &&
+ if (csts[i].getParameterTypes().length == 1 &&
csts[i].getParameterTypes()[0].equals(InstanceManager.class)) {
found = true;
cst = csts[i];
@@ -183,7 +246,7 @@ public class ManipulatorTest extends TestCase {
Assert.assertTrue(Arrays.asList(cl.getInterfaces()).contains(Pojo.class));
cst.setAccessible(true);
- Object pojo = cst.newInstance(new Object[] {new InstanceManager()});
+ Object pojo = cst.newInstance(new Object[]{new InstanceManager()});
Assert.assertNotNull(pojo);
Assert.assertTrue(pojo instanceof Pojo);
@@ -208,7 +271,7 @@ public class ManipulatorTest extends TestCase {
Constructor[] csts = cl.getDeclaredConstructors();
for (int i = 0; i < csts.length; i++) {
System.out.println(Arrays.asList(csts[i].getParameterTypes()));
- if (csts[i].getParameterTypes().length == 1 &&
+ if (csts[i].getParameterTypes().length == 1 &&
csts[i].getParameterTypes()[0].equals(InstanceManager.class)) {
found = true;
cst = csts[i];
@@ -232,7 +295,7 @@ public class ManipulatorTest extends TestCase {
InstanceManager im = (InstanceManager) Mockito.mock(InstanceManager.class);
cst.setAccessible(true);
- Object pojo = cst.newInstance(new Object[] {im});
+ Object pojo = cst.newInstance(new Object[]{im});
Assert.assertNotNull(pojo);
Assert.assertTrue(pojo instanceof Pojo);
@@ -256,7 +319,7 @@ public class ManipulatorTest extends TestCase {
Constructor[] csts = cl.getDeclaredConstructors();
for (int i = 0; i < csts.length; i++) {
System.out.println(Arrays.asList(csts[i].getParameterTypes()));
- if (csts[i].getParameterTypes().length == 1 &&
+ if (csts[i].getParameterTypes().length == 1 &&
csts[i].getParameterTypes()[0].equals(InstanceManager.class)) {
found = true;
cst = csts[i];
@@ -276,7 +339,7 @@ public class ManipulatorTest extends TestCase {
Assert.assertTrue(found);
// Check that we have the IM, Integer, String constructor too
- Constructor cst2 = cl.getDeclaredConstructor(new Class[] { InstanceManager.class, Integer.TYPE, String.class });
+ Constructor cst2 = cl.getDeclaredConstructor(new Class[]{InstanceManager.class, Integer.TYPE, String.class});
Assert.assertNotNull(cst2);
// Check the POJO interface
@@ -286,7 +349,7 @@ public class ManipulatorTest extends TestCase {
// Creation using cst
InstanceManager im = (InstanceManager) Mockito.mock(InstanceManager.class);
cst.setAccessible(true);
- Object pojo = cst.newInstance(new Object[] {im});
+ Object pojo = cst.newInstance(new Object[]{im});
Assert.assertNotNull(pojo);
Assert.assertTrue(pojo instanceof Pojo);
@@ -296,7 +359,7 @@ public class ManipulatorTest extends TestCase {
// Try to create using cst2
im = (InstanceManager) Mockito.mock(InstanceManager.class);
cst2.setAccessible(true);
- pojo = cst2.newInstance(new Object[] {im, new Integer(2), "bariton"});
+ pojo = cst2.newInstance(new Object[]{im, new Integer(2), "bariton"});
Assert.assertNotNull(pojo);
Assert.assertTrue(pojo instanceof Pojo);
@@ -304,10 +367,8 @@ public class ManipulatorTest extends TestCase {
Assert.assertEquals(10, ((Integer) method.invoke(pojo, new Object[0])).intValue());
-
}
-
public void testManipulatingWithNoValidConstructor() throws Exception {
Manipulator manipulator = new Manipulator(this.getClass().getClassLoader());
byte[] origin = getBytesFromFile(new File("target/test-classes/test/NoValidConstructor.class"));
@@ -329,7 +390,7 @@ public class ManipulatorTest extends TestCase {
Constructor[] csts = cl.getDeclaredConstructors();
for (int i = 0; i < csts.length; i++) {
System.out.println(Arrays.asList(csts[i].getParameterTypes()));
- if (csts[i].getParameterTypes().length == 1 &&
+ if (csts[i].getParameterTypes().length == 1 &&
csts[i].getParameterTypes()[0].equals(InstanceManager.class)) {
found = true;
cst = csts[i];
@@ -341,17 +402,17 @@ public class ManipulatorTest extends TestCase {
Assert.assertTrue(Arrays.asList(cl.getInterfaces()).contains(Pojo.class));
cst.setAccessible(true);
- Object pojo = cst.newInstance(new Object[] {new InstanceManager()});
+ Object pojo = cst.newInstance(new Object[]{new InstanceManager()});
Assert.assertNotNull(pojo);
Assert.assertTrue(pojo instanceof Pojo);
}
- public void testConstructor() throws Exception {
- Manipulator manipulator = new Manipulator(this.getClass().getClassLoader());
- byte[] origin = getBytesFromFile(new File("target/test-classes/test/ConstructorCheck.class"));
- manipulator.prepare(origin);
- byte[] clazz = manipulator.manipulate(origin);
+ public void testConstructor() throws Exception {
+ Manipulator manipulator = new Manipulator(this.getClass().getClassLoader());
+ byte[] origin = getBytesFromFile(new File("target/test-classes/test/ConstructorCheck.class"));
+ manipulator.prepare(origin);
+ byte[] clazz = manipulator.manipulate(origin);
// File out = new File("target/ManipulatedConstructorCheck.class");
// FileOutputStream fos = new FileOutputStream(out);
@@ -365,13 +426,13 @@ public class ManipulatorTest extends TestCase {
System.out.println(manipulator.getManipulationMetadata());
- Constructor c = cl.getConstructor(new Class[] {String.class });
+ Constructor c = cl.getConstructor(new Class[]{String.class});
Assert.assertNotNull(c);
Object o = c.newInstance("toto");
Field f = o.getClass().getField("m_foo");
Assert.assertEquals("toto", f.get(o));
- }
+ }
/**
* https://issues.apache.org/jira/browse/FELIX-3621
@@ -396,9 +457,9 @@ public class ManipulatorTest extends TestCase {
boolean found = false;
Constructor cst = null;
Constructor[] csts = cl.getDeclaredConstructors();
- for(int i = 0; i < csts.length; i++) {
+ for (int i = 0; i < csts.length; i++) {
System.out.println(Arrays.asList(csts[i].getParameterTypes()));
- if (csts[i].getParameterTypes().length == 1 &&
+ if (csts[i].getParameterTypes().length == 1 &&
csts[i].getParameterTypes()[0].equals(InstanceManager.class)) {
found = true;
cst = csts[i];
@@ -421,7 +482,7 @@ public class ManipulatorTest extends TestCase {
Assert.assertTrue(Arrays.asList(cl.getInterfaces()).contains(Pojo.class));
cst.setAccessible(true);
- Object pojo = cst.newInstance(new Object[] {new InstanceManager()});
+ Object pojo = cst.newInstance(new Object[]{new InstanceManager()});
Assert.assertNotNull(pojo);
Assert.assertTrue(pojo instanceof Pojo);
@@ -431,30 +492,4 @@ public class ManipulatorTest extends TestCase {
}
-
- public static byte[] getBytesFromFile(File file) throws IOException {
- InputStream is = new FileInputStream(file);
- long length = file.length();
- byte[] bytes = new byte[(int)length];
-
- // Read in the bytes
- int offset = 0;
- int numRead = 0;
- while (offset < bytes.length
- && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
- offset += numRead;
- }
-
- // Ensure all the bytes have been read in
- if (offset < bytes.length) {
- throw new IOException("Could not completely read file "+file.getName());
- }
-
- // Close the input stream and return bytes
- is.close();
- return bytes;
- }
-
-
-
}
diff --git a/ipojo/manipulator/manipulator/src/test/java/test/InterfaceWithStatic.java b/ipojo/manipulator/manipulator/src/test/java/test/InterfaceWithStatic.java
new file mode 100644
index 0000000000..85ea205e62
--- /dev/null
+++ b/ipojo/manipulator/manipulator/src/test/java/test/InterfaceWithStatic.java
@@ -0,0 +1,33 @@
+/*
+ * 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 test;
+
+public interface InterfaceWithStatic {
+ static InterfaceWithStatic ofString(String string) {
+ return new InterfaceWithStatic() {
+ @Override
+ public String getString() {
+ return string;
+ }
+ };
+ }
+
+ String getString();
+}
diff --git a/ipojo/manipulator/manipulator/src/test/java/test/PojoWithFinalArray.java b/ipojo/manipulator/manipulator/src/test/java/test/PojoWithFinalArray.java
new file mode 100644
index 0000000000..2da51e8b34
--- /dev/null
+++ b/ipojo/manipulator/manipulator/src/test/java/test/PojoWithFinalArray.java
@@ -0,0 +1,34 @@
+/*
+ * 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 test;
+
+public class PojoWithFinalArray {
+
+ private final String[] strings = createInterfaces();
+
+ private String[] createInterfaces() {
+ return new String[]{"test"};
+ }
+
+ public String doSomething() {
+ return strings[0];
+ }
+
+}
diff --git a/ipojo/manipulator/manipulator/src/test/java/test/PojoWithStaticInterface.java b/ipojo/manipulator/manipulator/src/test/java/test/PojoWithStaticInterface.java
new file mode 100644
index 0000000000..3fd80e61fb
--- /dev/null
+++ b/ipojo/manipulator/manipulator/src/test/java/test/PojoWithStaticInterface.java
@@ -0,0 +1,32 @@
+/*
+ * 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 test;
+
+public class PojoWithStaticInterface {
+
+ private final InterfaceWithStatic intf = InterfaceWithStatic.ofString("test");
+
+ // This is a simple POJO
+
+ public String doSomething() {
+ return intf.getString();
+ }
+
+}
diff --git a/ipojo/manipulator/manipulator/src/test/java/test/frames/CryptoServiceSingleton.java b/ipojo/manipulator/manipulator/src/test/java/test/frames/CryptoServiceSingleton.java
index 62823fa341..660d15a634 100644
--- a/ipojo/manipulator/manipulator/src/test/java/test/frames/CryptoServiceSingleton.java
+++ b/ipojo/manipulator/manipulator/src/test/java/test/frames/CryptoServiceSingleton.java
@@ -7,9 +7,9 @@
* 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.
@@ -57,6 +57,7 @@ public class CryptoServiceSingleton {
private Hash defaultHash;
private final String secret;
+ private final String testField = "TEST";
public CryptoServiceSingleton(String secret, Hash defaultHash,
Integer keySize, Integer iterationCount) {
diff --git a/ipojo/manipulator/maven-ipojo-plugin/pom.xml b/ipojo/manipulator/maven-ipojo-plugin/pom.xml
index 7f1b1da92a..a407339a04 100644
--- a/ipojo/manipulator/maven-ipojo-plugin/pom.xml
+++ b/ipojo/manipulator/maven-ipojo-plugin/pom.xml
@@ -20,8 +20,7 @@
<parent>
<groupId>org.apache.felix</groupId>
<artifactId>felix-parent</artifactId>
- <version>2.1</version>
- <relativePath>../../../pom/pom.xml</relativePath>
+ <version>8</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-ipojo-plugin</artifactId>
@@ -46,12 +45,12 @@
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-archiver</artifactId>
- <version>2.4.1</version>
+ <version>3.6.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
- <version>3.0.16</version>
+ <version>3.0.24</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
@@ -88,10 +87,16 @@
<build>
<plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <additionalJOption>-Xdoclint:none</additionalJOption>
+ </configuration>
+ </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
- <version>2.10</version>
<configuration>
<enableRulesSummary>false</enableRulesSummary>
<violationSeverity>warning</violationSeverity>
@@ -102,8 +107,8 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
- <source>1.5</source>
- <target>1.5</target>
+ <source>8</source>
+ <target>8</target>
</configuration>
</plugin>
@@ -130,6 +135,10 @@
</excludes>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ </plugin>
</plugins>
</build>
@@ -141,6 +150,35 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <tags>
+ <tag>
+ <name>goal</name>
+ <placement>a</placement>
+ <head>Goal:</head>
+ </tag>
+ <tag>
+ <name>phase</name>
+ <placement>a</placement>
+ <head>Phase:</head>
+ </tag>
+ <tag>
+ <name>threadSafe</name>
+ <placement>a</placement>
+ <head>Thread Safe:</head>
+ </tag>
+ <tag>
+ <name>requiresDependencyResolution</name>
+ <placement>a</placement>
+ <head>Requires Dependency Resolution:</head>
+ </tag>
+ <tag>
+ <name>description</name>
+ <placement>a</placement>
+ <head>Description:</head>
+ </tag>
+ </tags>
+ </configuration>
<executions>
<execution>
<id>attach-javadocs</id>
diff --git a/ipojo/manipulator/maven-ipojo-plugin/src/main/resources/archetype-resources/pom.xml b/ipojo/manipulator/maven-ipojo-plugin/src/main/resources/archetype-resources/pom.xml
index d27c0ea85a..c66de92d67 100644
--- a/ipojo/manipulator/maven-ipojo-plugin/src/main/resources/archetype-resources/pom.xml
+++ b/ipojo/manipulator/maven-ipojo-plugin/src/main/resources/archetype-resources/pom.xml
@@ -1,5 +1,5 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>bundle</packaging>
<groupId>${groupId}</groupId>
diff --git a/ipojo/manipulator/online-manipulator/pom.xml b/ipojo/manipulator/online-manipulator/pom.xml
index f18bc5df0e..717ece5dfd 100644
--- a/ipojo/manipulator/online-manipulator/pom.xml
+++ b/ipojo/manipulator/online-manipulator/pom.xml
@@ -20,8 +20,7 @@
<parent>
<groupId>org.apache.felix</groupId>
<artifactId>felix-parent</artifactId>
- <version>2.1</version>
- <relativePath>../../../pom/pom.xml</relativePath>
+ <version>8</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>bundle</packaging>
@@ -39,6 +38,7 @@
<properties>
<ipojo.import.packages>[1.12.1,2.0.0)</ipojo.import.packages>
<ipojo.manipulator.version>${project.version}</ipojo.manipulator.version>
+ <asm.version>9.6</asm.version>
</properties>
<dependencies>
@@ -68,7 +68,23 @@
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
- <artifactId>asm-all</artifactId>
+ <artifactId>asm</artifactId>
+ <version>${asm.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.ow2.asm</groupId>
+ <artifactId>asm-tree</artifactId>
+ <version>${asm.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.ow2.asm</groupId>
+ <artifactId>asm-commons</artifactId>
+ <version>${asm.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.ow2.asm</groupId>
+ <artifactId>asm-util</artifactId>
+ <version>${asm.version}</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
@@ -101,18 +117,17 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <version>3.0</version>
<configuration>
- <target>1.5</target>
- <source>1.5</source>
- <testTarget>1.5</testTarget>
- <testSource>1.5</testSource>
+ <target>8</target>
+ <source>8</source>
+ <testTarget>8</testTarget>
+ <testSource>8</testSource>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
- <version>2.3.7</version>
+ <version>5.1.9</version>
<extensions>true</extensions>
<configuration>
<instructions>
@@ -155,7 +170,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
- <version>2.10</version>
<configuration>
<enableRulesSummary>false</enableRulesSummary>
<violationSeverity>warning</violationSeverity>
diff --git a/ipojo/manipulator/pom.xml b/ipojo/manipulator/pom.xml
index 538fe6e86d..2511e0cc97 100644
--- a/ipojo/manipulator/pom.xml
+++ b/ipojo/manipulator/pom.xml
@@ -16,12 +16,11 @@
specific language governing permissions and limitations
under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.apache.felix</groupId>
<artifactId>felix-parent</artifactId>
- <version>2.1</version>
- <relativePath>../../pom/pom.xml</relativePath>
+ <version>8</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>org.apache.felix.ipojo.manipulator-project</artifactId>
@@ -55,7 +54,6 @@
<plugins>
<plugin>
<artifactId>maven-release-plugin</artifactId>
- <version>2.5.1</version>
<configuration>
<tagBase>https://svn.apache.org/repos/asf/felix/releases</tagBase>
<useReleaseProfile>false</useReleaseProfile>
diff --git a/ipojo/metadata/pom.xml b/ipojo/metadata/pom.xml
index 732cdc7fe4..e538d36c1e 100644
--- a/ipojo/metadata/pom.xml
+++ b/ipojo/metadata/pom.xml
@@ -40,7 +40,7 @@
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
- <version>2.3.7</version>
+ <version>5.1.1</version>
<extensions>true</extensions>
<configuration>
<instructions>
@@ -58,8 +58,8 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
- <target>1.5</target>
- <source>1.5</source>
+ <target>8</target>
+ <source>8</source>
</configuration>
</plugin>
</plugins>