This is an automated email from the ASF dual-hosted git repository. jbonofre pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/aries.git
commit 09e60c68ed874439c8a82eac92720df23ba1ad15 Author: jbonofre <[email protected]> AuthorDate: Wed May 20 10:09:46 2020 +0200 [ARIES-1787] Add around functionnality on object proxy --- proxy/proxy-api/pom.xml | 2 +- .../src/main/java/org/apache/aries/proxy/InvocationListener.java | 6 ++++++ proxy/proxy-impl/pom.xml | 2 +- .../src/main/java/org/apache/aries/proxy/impl/ProxyHandler.java | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) 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 interface InvocationListener 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 @@ public final class ProxyHandler implements InvocationHandler { 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);
