You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2018/05/29 21:55:45 UTC
[isis] 01/02: ISIS-1950: simplify proxy-factory-plugin API
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit ba636b862fc2fb2267d9171a14d54cf9d2bb7c68
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue May 29 23:51:09 2018 +0200
ISIS-1950: simplify proxy-factory-plugin API
Task-Url: https://issues.apache.org/jira/browse/ISIS-1950
---
.../org/apache/isis/core/plugins/codegen/ProxyFactory.java | 11 +----------
.../apache/isis/core/plugins/codegen/ProxyFactoryPlugin.java | 4 ----
.../plugins/codegen/ProxyFactoryPluginUsingByteBuddy.java | 3 ---
.../plugins/codegen/ProxyFactoryPluginUsingJavassist.java | 9 ++++-----
4 files changed, 5 insertions(+), 22 deletions(-)
diff --git a/core/commons/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactory.java b/core/commons/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactory.java
index 616810e..6283586 100644
--- a/core/commons/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactory.java
+++ b/core/commons/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactory.java
@@ -19,8 +19,6 @@
package org.apache.isis.core.plugins.codegen;
import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.util.function.Predicate;
/**
* Generates dynamic classes and corresponding instances by rebasing a given 'base' class.
@@ -53,11 +51,8 @@ public interface ProxyFactory<T> {
// -- BUILDER (uses plugin)
public static class ProxyFactoryBuilder<T> {
- private static final Predicate<Method> DEFAULT_METHOD_FILTER =
- m->!"finalize".equals(m.getName());
private final Class<T> base;
private Class<?>[] interfaces;
- private Predicate<Method> methodFilter = DEFAULT_METHOD_FILTER;
private Class<?>[] constructorArgTypes;
private ProxyFactoryBuilder(Class<T> base) {
this.base = base;
@@ -66,16 +61,12 @@ public interface ProxyFactory<T> {
this.interfaces = interfaces;
return this;
}
- public ProxyFactoryBuilder<T> methodFilter(Predicate<Method> methodFilter) {
- this.methodFilter = methodFilter;
- return this;
- }
public ProxyFactoryBuilder<T> constructorArgTypes(Class<?>[] constructorArgTypes) {
this.constructorArgTypes = constructorArgTypes;
return this;
}
public ProxyFactory<T> build() {
- return ProxyFactoryPlugin.get().factory(base, interfaces, methodFilter, constructorArgTypes);
+ return ProxyFactoryPlugin.get().factory(base, interfaces, constructorArgTypes);
}
}
diff --git a/core/commons/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactoryPlugin.java b/core/commons/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactoryPlugin.java
index bb68ed9..f147060 100644
--- a/core/commons/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactoryPlugin.java
+++ b/core/commons/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactoryPlugin.java
@@ -18,9 +18,6 @@
*/
package org.apache.isis.core.plugins.codegen;
-import java.lang.reflect.Method;
-import java.util.function.Predicate;
-
import javax.annotation.Nullable;
import org.apache.isis.commons.internal.context._Plugin;
@@ -32,7 +29,6 @@ public interface ProxyFactoryPlugin {
public <T> ProxyFactory<T> factory(
Class<T> base,
@Nullable Class<?>[] interfaces,
- @Nullable Predicate<Method> methodFilter,
@Nullable Class<?>[] constructorArgTypes);
diff --git a/core/plugins/codegen-bytebuddy/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactoryPluginUsingByteBuddy.java b/core/plugins/codegen-bytebuddy/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactoryPluginUsingByteBuddy.java
index 0a43c98..9bd3035 100644
--- a/core/plugins/codegen-bytebuddy/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactoryPluginUsingByteBuddy.java
+++ b/core/plugins/codegen-bytebuddy/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactoryPluginUsingByteBuddy.java
@@ -2,9 +2,7 @@ package org.apache.isis.core.plugins.codegen;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.util.function.Function;
-import java.util.function.Predicate;
import javax.annotation.Nullable;
@@ -27,7 +25,6 @@ public class ProxyFactoryPluginUsingByteBuddy implements ProxyFactoryPlugin {
public <T> ProxyFactory<T> factory(
Class<T> base,
Class<?>[] interfaces,
- Predicate<Method> methodFilter,
Class<?>[] constructorArgTypes) {
final Objenesis objenesis = new ObjenesisStd();
diff --git a/core/plugins/codegen-javassist/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactoryPluginUsingJavassist.java b/core/plugins/codegen-javassist/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactoryPluginUsingJavassist.java
index 5247b3d..4e3140a 100644
--- a/core/plugins/codegen-javassist/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactoryPluginUsingJavassist.java
+++ b/core/plugins/codegen-javassist/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactoryPluginUsingJavassist.java
@@ -19,11 +19,13 @@ import javassist.util.proxy.ProxyObject;
public class ProxyFactoryPluginUsingJavassist implements ProxyFactoryPlugin {
+ private static final Predicate<Method> DEFAULT_METHOD_FILTER =
+ m->!"finalize".equals(m.getName());
+
@Override
public <T> ProxyFactory<T> factory(
final Class<T> base,
final Class<?>[] interfaces,
- final Predicate<Method> methodFilter,
final Class<?>[] constructorArgTypes) {
final javassist.util.proxy.ProxyFactory pfDelegate = new javassist.util.proxy.ProxyFactory();
@@ -31,10 +33,7 @@ public class ProxyFactoryPluginUsingJavassist implements ProxyFactoryPlugin {
pfDelegate.setSuperclass(base);
pfDelegate.setInterfaces(interfaces);
-
- if(methodFilter!=null) {
- pfDelegate.setFilter(methodFilter::test);
- }
+ pfDelegate.setFilter(DEFAULT_METHOD_FILTER::test);
return new ProxyFactory<T>() {
--
To stop receiving notification emails like this one, please contact
ahuber@apache.org.