You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ge...@apache.org on 2010/10/28 10:44:02 UTC
svn commit: r1028219 - in
/openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans:
component/ResourceBean.java proxy/JavassistProxyFactory.java
Author: gerdogdu
Date: Thu Oct 28 08:44:01 2010
New Revision: 1028219
URL: http://svn.apache.org/viewvc?rev=1028219&view=rev
Log:
[OWB-486] ResourceBean tries to proxy final classes before testing them for being final, thanks to David Jencks, Also includes sync. problem that Ying has provided
Modified:
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
Modified: openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java?rev=1028219&r1=1028218&r2=1028219&view=diff
==============================================================================
--- openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java (original)
+++ openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java Thu Oct 28 08:44:01 2010
@@ -21,8 +21,6 @@ package org.apache.webbeans.component;
import java.lang.annotation.Annotation;
import java.lang.reflect.Modifier;
-import javassist.util.proxy.ProxyFactory;
-
import javax.enterprise.context.spi.CreationalContext;
import javassist.util.proxy.ProxyObject;
@@ -35,8 +33,6 @@ import org.apache.webbeans.spi.api.Resou
public class ResourceBean<X, T extends Annotation> extends ProducerFieldBean<X>
{
- private X actualResourceReference = null;
-
private ResourceReference<X,T> resourceReference = null;
public ResourceBean(Class<X> returnType, InjectionTargetBean<?> ownerBean,
@@ -55,37 +51,38 @@ public class ResourceBean<X, T extends A
X instance = null;
try
{
- //X TODO cache proxy class!
- ProxyFactory proxyFactory = JavassistProxyFactory.getInstance().createProxyFactory(this);
-
ResourceInjectionService resourceService = ServiceLoader.getService(ResourceInjectionService.class);
- this.actualResourceReference = resourceService.getResourceReference(this.resourceReference);
+ instance = resourceService.getResourceReference(this.resourceReference);
- instance = (X)(JavassistProxyFactory.getInstance().getProxyClass(proxyFactory).newInstance());
- ((ProxyObject)instance).setHandler(new ResourceProxyHandler(this.actualResourceReference));
- }
- catch (Exception e)
- {
- //check type is final
- //return actual resource
- if(Modifier.isFinal(this.actualResourceReference.getClass().getModifiers()))
+ if (instance != null && Modifier.isFinal(instance.getClass().getModifiers()))
{
- return this.actualResourceReference;
+ return instance;
}
+ instance = (X) JavassistProxyFactory.getInstance().getResourceBeanProxyClass(this).newInstance();
+ ((ProxyObject) instance).setHandler(new ResourceProxyHandler(this,instance));
+ }
+ catch (Exception e)
+ {
throw new WebBeansException(e);
}
-
+
return instance;
}
- @Override
- protected void destroyInstance(X instance, CreationalContext<X> creationalContext)
+ /**
+ * Called after deserialization to get a new instance for some type of resource bean instance that are
+ * not serializable.
+ *
+ * @return a new instance of this resource bean.
+ */
+ public X getActualInstance()
{
- this.actualResourceReference = null;
+ ResourceInjectionService resourceService = ServiceLoader.getService(ResourceInjectionService.class);
+ X instance = resourceService.getResourceReference(this.resourceReference);
+ return instance;
}
-
-
+
public boolean isPassivationCapable()
{
return true;
Modified: openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
URL: http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java?rev=1028219&r1=1028218&r2=1028219&view=diff
==============================================================================
--- openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java (original)
+++ openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java Thu Oct 28 08:44:01 2010
@@ -40,6 +40,7 @@ import javax.enterprise.inject.spi.Decor
import org.apache.webbeans.annotation.WebBeansAnnotation;
import org.apache.webbeans.component.InjectionTargetBean;
import org.apache.webbeans.component.OwbBean;
+import org.apache.webbeans.component.ResourceBean;
import org.apache.webbeans.config.WebBeansFinder;
import org.apache.webbeans.context.creational.CreationalContextImpl;
import org.apache.webbeans.decorator.WebBeansDecorator;
@@ -61,7 +62,8 @@ public final class JavassistProxyFactory
private ConcurrentMap<OwbBean<?>, Class<?>> normalScopedBeanProxyClasses = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
private ConcurrentMap<OwbBean<?>, Class<?>> dependentScopedBeanProxyClasses = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
- private ConcurrentMap<OwbBean<?>, Class<?>> interceptorProxyClasses = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
+ private ConcurrentMap<OwbBean<?>, Class<?>> interceptorProxyClasses = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
+ private ConcurrentMap<ResourceBean<?, ?>, Class<?>> resourceBeanProxyClasses = new ConcurrentHashMap<ResourceBean<?,?>, Class<?>>();
// second level map is indexed on local interface
private ConcurrentMap<OwbBean<?>, ConcurrentMap<Class<?>, Class<?>>> ejbProxyClasses = new ConcurrentHashMap<OwbBean<?>, ConcurrentMap<Class<?>, Class<?>>>();
@@ -100,6 +102,32 @@ public final class JavassistProxyFactory
}
return proxyClass;
}
+
+ public Class<?> getResourceBeanProxyClass(ResourceBean<?, ?> resourceBean)
+ {
+ Class<?> proxyClass = null;
+ try
+ {
+ proxyClass = this.resourceBeanProxyClasses.get(resourceBean);
+ if (proxyClass == null)
+ {
+ ProxyFactory fact = createProxyFactory(resourceBean);
+ proxyClass = getProxyClass(fact);
+
+ Class<?> oldClazz = this.resourceBeanProxyClasses.putIfAbsent(resourceBean, proxyClass);
+ if (oldClazz != null)
+ {
+ return oldClazz;
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ WebBeansUtil.throwRuntimeExceptions(e);
+ }
+
+ return proxyClass;
+ }
/**
* Defines the proxy for the given bean and iface using callers factory. Due
Re: svn commit: r1028219 - in /openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans: component/ResourceBean.java proxy/JavassistProxyFactory.java
Posted by Gurkan Erdogdu <gu...@yahoo.com>.
Thanks Joe.
I have corrected!
Thanks;
--Gurkan
----- Original Message ----
From: Joseph Bergmark <be...@apache.org>
To: dev@openwebbeans.apache.org
Sent: Thu, November 4, 2010 2:47:05 AM
Subject: Re: svn commit: r1028219 - in
/openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans:
component/ResourceBean.java proxy/JavassistProxyFactory.java
This change to ResourceBean doesn't compile. It appears to be a partial
backport. I attempted to quickly resolve it by bringing in the
ResourceProxyHandler from trunk but hit another set of failures.
In the meantime I have reverted it.
Sincerely,
Joe
On Thu, Oct 28, 2010 at 4:44 AM, <ge...@apache.org> wrote:
> Author: gerdogdu
> Date: Thu Oct 28 08:44:01 2010
> New Revision: 1028219
>
> URL: http://svn.apache.org/viewvc?rev=1028219&view=rev
> Log:
> [OWB-486] ResourceBean tries to proxy final classes before testing them for
> being final, thanks to David Jencks, Also includes sync. problem that Ying
> has provided
>
> Modified:
>
>
>openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java
>
>
>
>openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
>
>
> Modified:
>openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java
>a
> URL:
>http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java?rev=1028219&r1=1028218&r2=1028219&view=diff
>f
>
> ==============================================================================
> ---
>openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java
>a
> (original)
> +++
>openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java
>a
> Thu Oct 28 08:44:01 2010
> @@ -21,8 +21,6 @@ package org.apache.webbeans.component;
> import java.lang.annotation.Annotation;
> import java.lang.reflect.Modifier;
>
> -import javassist.util.proxy.ProxyFactory;
> -
> import javax.enterprise.context.spi.CreationalContext;
>
> import javassist.util.proxy.ProxyObject;
> @@ -35,8 +33,6 @@ import org.apache.webbeans.spi.api.Resou
>
> public class ResourceBean<X, T extends Annotation> extends
> ProducerFieldBean<X>
> {
> - private X actualResourceReference = null;
> -
> private ResourceReference<X,T> resourceReference = null;
>
> public ResourceBean(Class<X> returnType, InjectionTargetBean<?>
> ownerBean,
> @@ -55,37 +51,38 @@ public class ResourceBean<X, T extends A
> X instance = null;
> try
> {
> - //X TODO cache proxy class!
> - ProxyFactory proxyFactory =
> JavassistProxyFactory.getInstance().createProxyFactory(this);
> -
> ResourceInjectionService resourceService =
> ServiceLoader.getService(ResourceInjectionService.class);
> - this.actualResourceReference =
> resourceService.getResourceReference(this.resourceReference);
> + instance =
> resourceService.getResourceReference(this.resourceReference);
>
> - instance =
>(X)(JavassistProxyFactory.getInstance().getProxyClass(proxyFactory).newInstance());
>;
> - ((ProxyObject)instance).setHandler(new
> ResourceProxyHandler(this.actualResourceReference));
> - }
> - catch (Exception e)
> - {
> - //check type is final
> - //return actual resource
> -
> if(Modifier.isFinal(this.actualResourceReference.getClass().getModifiers()))
> + if (instance != null &&
> Modifier.isFinal(instance.getClass().getModifiers()))
> {
> - return this.actualResourceReference;
> + return instance;
> }
>
> + instance = (X)
>JavassistProxyFactory.getInstance().getResourceBeanProxyClass(this).newInstance();
>;
> + ((ProxyObject) instance).setHandler(new
> ResourceProxyHandler(this,instance));
> + }
> + catch (Exception e)
> + {
> throw new WebBeansException(e);
> }
> -
> +
> return instance;
> }
>
> - @Override
> - protected void destroyInstance(X instance, CreationalContext<X>
> creationalContext)
> + /**
> + * Called after deserialization to get a new instance for some type of
> resource bean instance that are
> + * not serializable.
> + *
> + * @return a new instance of this resource bean.
> + */
> + public X getActualInstance()
> {
> - this.actualResourceReference = null;
> + ResourceInjectionService resourceService =
> ServiceLoader.getService(ResourceInjectionService.class);
> + X instance =
> resourceService.getResourceReference(this.resourceReference);
> + return instance;
> }
> -
> -
> +
> public boolean isPassivationCapable()
> {
> return true;
>
> Modified:
>openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
>a
> URL:
>http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java?rev=1028219&r1=1028218&r2=1028219&view=diff
>f
>
> ==============================================================================
> ---
>openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
>a
> (original)
> +++
>openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
>a
> Thu Oct 28 08:44:01 2010
> @@ -40,6 +40,7 @@ import javax.enterprise.inject.spi.Decor
> import org.apache.webbeans.annotation.WebBeansAnnotation;
> import org.apache.webbeans.component.InjectionTargetBean;
> import org.apache.webbeans.component.OwbBean;
> +import org.apache.webbeans.component.ResourceBean;
> import org.apache.webbeans.config.WebBeansFinder;
> import org.apache.webbeans.context.creational.CreationalContextImpl;
> import org.apache.webbeans.decorator.WebBeansDecorator;
> @@ -61,7 +62,8 @@ public final class JavassistProxyFactory
>
> private ConcurrentMap<OwbBean<?>, Class<?>>
> normalScopedBeanProxyClasses = new ConcurrentHashMap<OwbBean<?>,
> Class<?>>();
> private ConcurrentMap<OwbBean<?>, Class<?>>
> dependentScopedBeanProxyClasses = new ConcurrentHashMap<OwbBean<?>,
> Class<?>>();
> - private ConcurrentMap<OwbBean<?>, Class<?>> interceptorProxyClasses =
> new ConcurrentHashMap<OwbBean<?>, Class<?>>();
> + private ConcurrentMap<OwbBean<?>, Class<?>> interceptorProxyClasses =
> new ConcurrentHashMap<OwbBean<?>, Class<?>>();
> + private ConcurrentMap<ResourceBean<?, ?>, Class<?>>
> resourceBeanProxyClasses = new ConcurrentHashMap<ResourceBean<?,?>,
> Class<?>>();
> // second level map is indexed on local interface
> private ConcurrentMap<OwbBean<?>, ConcurrentMap<Class<?>, Class<?>>>
> ejbProxyClasses = new ConcurrentHashMap<OwbBean<?>, ConcurrentMap<Class<?>,
> Class<?>>>();
>
> @@ -100,6 +102,32 @@ public final class JavassistProxyFactory
> }
> return proxyClass;
> }
> +
> + public Class<?> getResourceBeanProxyClass(ResourceBean<?, ?>
> resourceBean)
> + {
> + Class<?> proxyClass = null;
> + try
> + {
> + proxyClass = this.resourceBeanProxyClasses.get(resourceBean);
> + if (proxyClass == null)
> + {
> + ProxyFactory fact = createProxyFactory(resourceBean);
> + proxyClass = getProxyClass(fact);
> +
> + Class<?> oldClazz =
> this.resourceBeanProxyClasses.putIfAbsent(resourceBean, proxyClass);
> + if (oldClazz != null)
> + {
> + return oldClazz;
> + }
> + }
> + }
> + catch (Exception e)
> + {
> + WebBeansUtil.throwRuntimeExceptions(e);
> + }
> +
> + return proxyClass;
> + }
>
> /**
> * Defines the proxy for the given bean and iface using callers
> factory. Due
>
>
>
Re: svn commit: r1028219 - in /openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans:
component/ResourceBean.java proxy/JavassistProxyFactory.java
Posted by Joseph Bergmark <be...@apache.org>.
This change to ResourceBean doesn't compile. It appears to be a partial
backport. I attempted to quickly resolve it by bringing in the
ResourceProxyHandler from trunk but hit another set of failures.
In the meantime I have reverted it.
Sincerely,
Joe
On Thu, Oct 28, 2010 at 4:44 AM, <ge...@apache.org> wrote:
> Author: gerdogdu
> Date: Thu Oct 28 08:44:01 2010
> New Revision: 1028219
>
> URL: http://svn.apache.org/viewvc?rev=1028219&view=rev
> Log:
> [OWB-486] ResourceBean tries to proxy final classes before testing them for
> being final, thanks to David Jencks, Also includes sync. problem that Ying
> has provided
>
> Modified:
>
> openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java
>
> openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
>
> Modified:
> openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java
> URL:
> http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java?rev=1028219&r1=1028218&r2=1028219&view=diff
>
> ==============================================================================
> ---
> openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java
> (original)
> +++
> openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java
> Thu Oct 28 08:44:01 2010
> @@ -21,8 +21,6 @@ package org.apache.webbeans.component;
> import java.lang.annotation.Annotation;
> import java.lang.reflect.Modifier;
>
> -import javassist.util.proxy.ProxyFactory;
> -
> import javax.enterprise.context.spi.CreationalContext;
>
> import javassist.util.proxy.ProxyObject;
> @@ -35,8 +33,6 @@ import org.apache.webbeans.spi.api.Resou
>
> public class ResourceBean<X, T extends Annotation> extends
> ProducerFieldBean<X>
> {
> - private X actualResourceReference = null;
> -
> private ResourceReference<X,T> resourceReference = null;
>
> public ResourceBean(Class<X> returnType, InjectionTargetBean<?>
> ownerBean,
> @@ -55,37 +51,38 @@ public class ResourceBean<X, T extends A
> X instance = null;
> try
> {
> - //X TODO cache proxy class!
> - ProxyFactory proxyFactory =
> JavassistProxyFactory.getInstance().createProxyFactory(this);
> -
> ResourceInjectionService resourceService =
> ServiceLoader.getService(ResourceInjectionService.class);
> - this.actualResourceReference =
> resourceService.getResourceReference(this.resourceReference);
> + instance =
> resourceService.getResourceReference(this.resourceReference);
>
> - instance =
> (X)(JavassistProxyFactory.getInstance().getProxyClass(proxyFactory).newInstance());
> - ((ProxyObject)instance).setHandler(new
> ResourceProxyHandler(this.actualResourceReference));
> - }
> - catch (Exception e)
> - {
> - //check type is final
> - //return actual resource
> -
> if(Modifier.isFinal(this.actualResourceReference.getClass().getModifiers()))
> + if (instance != null &&
> Modifier.isFinal(instance.getClass().getModifiers()))
> {
> - return this.actualResourceReference;
> + return instance;
> }
>
> + instance = (X)
> JavassistProxyFactory.getInstance().getResourceBeanProxyClass(this).newInstance();
> + ((ProxyObject) instance).setHandler(new
> ResourceProxyHandler(this,instance));
> + }
> + catch (Exception e)
> + {
> throw new WebBeansException(e);
> }
> -
> +
> return instance;
> }
>
> - @Override
> - protected void destroyInstance(X instance, CreationalContext<X>
> creationalContext)
> + /**
> + * Called after deserialization to get a new instance for some type of
> resource bean instance that are
> + * not serializable.
> + *
> + * @return a new instance of this resource bean.
> + */
> + public X getActualInstance()
> {
> - this.actualResourceReference = null;
> + ResourceInjectionService resourceService =
> ServiceLoader.getService(ResourceInjectionService.class);
> + X instance =
> resourceService.getResourceReference(this.resourceReference);
> + return instance;
> }
> -
> -
> +
> public boolean isPassivationCapable()
> {
> return true;
>
> Modified:
> openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
> URL:
> http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java?rev=1028219&r1=1028218&r2=1028219&view=diff
>
> ==============================================================================
> ---
> openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
> (original)
> +++
> openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
> Thu Oct 28 08:44:01 2010
> @@ -40,6 +40,7 @@ import javax.enterprise.inject.spi.Decor
> import org.apache.webbeans.annotation.WebBeansAnnotation;
> import org.apache.webbeans.component.InjectionTargetBean;
> import org.apache.webbeans.component.OwbBean;
> +import org.apache.webbeans.component.ResourceBean;
> import org.apache.webbeans.config.WebBeansFinder;
> import org.apache.webbeans.context.creational.CreationalContextImpl;
> import org.apache.webbeans.decorator.WebBeansDecorator;
> @@ -61,7 +62,8 @@ public final class JavassistProxyFactory
>
> private ConcurrentMap<OwbBean<?>, Class<?>>
> normalScopedBeanProxyClasses = new ConcurrentHashMap<OwbBean<?>,
> Class<?>>();
> private ConcurrentMap<OwbBean<?>, Class<?>>
> dependentScopedBeanProxyClasses = new ConcurrentHashMap<OwbBean<?>,
> Class<?>>();
> - private ConcurrentMap<OwbBean<?>, Class<?>> interceptorProxyClasses =
> new ConcurrentHashMap<OwbBean<?>, Class<?>>();
> + private ConcurrentMap<OwbBean<?>, Class<?>> interceptorProxyClasses =
> new ConcurrentHashMap<OwbBean<?>, Class<?>>();
> + private ConcurrentMap<ResourceBean<?, ?>, Class<?>>
> resourceBeanProxyClasses = new ConcurrentHashMap<ResourceBean<?,?>,
> Class<?>>();
> // second level map is indexed on local interface
> private ConcurrentMap<OwbBean<?>, ConcurrentMap<Class<?>, Class<?>>>
> ejbProxyClasses = new ConcurrentHashMap<OwbBean<?>, ConcurrentMap<Class<?>,
> Class<?>>>();
>
> @@ -100,6 +102,32 @@ public final class JavassistProxyFactory
> }
> return proxyClass;
> }
> +
> + public Class<?> getResourceBeanProxyClass(ResourceBean<?, ?>
> resourceBean)
> + {
> + Class<?> proxyClass = null;
> + try
> + {
> + proxyClass = this.resourceBeanProxyClasses.get(resourceBean);
> + if (proxyClass == null)
> + {
> + ProxyFactory fact = createProxyFactory(resourceBean);
> + proxyClass = getProxyClass(fact);
> +
> + Class<?> oldClazz =
> this.resourceBeanProxyClasses.putIfAbsent(resourceBean, proxyClass);
> + if (oldClazz != null)
> + {
> + return oldClazz;
> + }
> + }
> + }
> + catch (Exception e)
> + {
> + WebBeansUtil.throwRuntimeExceptions(e);
> + }
> +
> + return proxyClass;
> + }
>
> /**
> * Defines the proxy for the given bean and iface using callers
> factory. Due
>
>
>