[ARIES-1787] Add around functionnality on object proxy
diff --git a/proxy/proxy-api/pom.xml b/proxy/proxy-api/pom.xml
index 2e058f6..d071fb4 100644
--- a/proxy/proxy-api/pom.xml
+++ b/proxy/proxy-api/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.aries</groupId>
<artifactId>parent</artifactId>
- <version>2.0.0</version>
+ <version>2.1.0</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
diff --git a/proxy/proxy-api/src/main/java/org/apache/aries/proxy/InvocationListener.java b/proxy/proxy-api/src/main/java/org/apache/aries/proxy/InvocationListener.java
index b319273..bf1447b 100644
--- a/proxy/proxy-api/src/main/java/org/apache/aries/proxy/InvocationListener.java
+++ b/proxy/proxy-api/src/main/java/org/apache/aries/proxy/InvocationListener.java
@@ -19,6 +19,7 @@
package org.apache.aries.proxy;
import java.lang.reflect.Method;
+import java.util.concurrent.Callable;
/**
* An {@link InvocationListener} is used in conjunction with the {@link ProxyManager}
@@ -31,4 +32,9 @@
public void postInvoke(Object token, Object proxy, Method m, Object returnValue) throws Throwable;
public void postInvokeExceptionalReturn(Object token, Object proxy, Method m, Throwable exception) throws Throwable;
+
+ default Object aroundInvoke(Object token, Object proxy, Callable<Object> dispatcher, Method method, Object[] args) throws Throwable {
+ return method.invoke(dispatcher.call(), args);
+ }
+
}
\ No newline at end of file
diff --git a/proxy/proxy-impl/pom.xml b/proxy/proxy-impl/pom.xml
index 06f0da1..6d0bbfa 100644
--- a/proxy/proxy-impl/pom.xml
+++ b/proxy/proxy-impl/pom.xml
@@ -70,7 +70,7 @@
<dependency>
<groupId>org.apache.aries.proxy</groupId>
<artifactId>org.apache.aries.proxy.api</artifactId>
- <version>1.1.0</version>
+ <version>1.1.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
diff --git a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/ProxyHandler.java b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/ProxyHandler.java
index f4f89df..0241ff2 100644
--- a/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/ProxyHandler.java
+++ b/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/ProxyHandler.java
@@ -51,7 +51,7 @@
try {
token = nonNullListener.preInvoke(proxy, method, args);
inInvoke = true;
- result = method.invoke(target.call(), args);
+ result = nonNullListener.aroundInvoke(token, proxy, target, method, args);
inInvoke = false;
nonNullListener.postInvoke(token, proxy, method, result);