From 36375586186ba8633223eb63253a8f7c749bc854 Mon Sep 17 00:00:00 2001 From: Lucio Lelii Date: Tue, 29 Sep 2015 15:16:54 +0000 Subject: [PATCH] git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/branches/common/common-gcore-stubs/1.0@119181 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../stubs/jaxws/proxies/GenericProxyFactory.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/gcube/common/clients/stubs/jaxws/proxies/GenericProxyFactory.java b/src/main/java/org/gcube/common/clients/stubs/jaxws/proxies/GenericProxyFactory.java index 277695f..3369fa4 100644 --- a/src/main/java/org/gcube/common/clients/stubs/jaxws/proxies/GenericProxyFactory.java +++ b/src/main/java/org/gcube/common/clients/stubs/jaxws/proxies/GenericProxyFactory.java @@ -1,15 +1,22 @@ package org.gcube.common.clients.stubs.jaxws.proxies; import java.lang.reflect.Proxy; +import java.util.HashMap; +import java.util.Map; public class GenericProxyFactory { + private static Map proxyMap = new HashMap<>(); + @SuppressWarnings("unchecked") public static T getProxy(Class intf, final I obj) { - return (T) - Proxy.newProxyInstance(obj.getClass().getClassLoader(), - new Class[] { intf }, - new MethodRetriever(obj)); + if (proxyMap.containsKey(intf.getCanonicalName())) + return (T) proxyMap.get(intf.getCanonicalName()); + T proxy = (T) Proxy.newProxyInstance(obj.getClass().getClassLoader(), + new Class[] { intf }, + new MethodRetriever(obj)); + proxyMap.put(intf.getCanonicalName(), proxy); + return proxy; } } \ No newline at end of file