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.