You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by mf...@apache.org on 2011/07/26 23:00:18 UTC
svn commit: r1151242 -
/incubator/rave/trunk/rave-shindig/src/main/java/org/apache/rave/inject/SpringBindingModule.java
Author: mfranklin
Date: Tue Jul 26 21:00:17 2011
New Revision: 1151242
URL: http://svn.apache.org/viewvc?rev=1151242&view=rev
Log:
Fixed potential bug where the scope of a bean requested from the application context is not a singleton (Supports RAVE-121)
Modified:
incubator/rave/trunk/rave-shindig/src/main/java/org/apache/rave/inject/SpringBindingModule.java
Modified: incubator/rave/trunk/rave-shindig/src/main/java/org/apache/rave/inject/SpringBindingModule.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-shindig/src/main/java/org/apache/rave/inject/SpringBindingModule.java?rev=1151242&r1=1151241&r2=1151242&view=diff
==============================================================================
--- incubator/rave/trunk/rave-shindig/src/main/java/org/apache/rave/inject/SpringBindingModule.java (original)
+++ incubator/rave/trunk/rave-shindig/src/main/java/org/apache/rave/inject/SpringBindingModule.java Tue Jul 26 21:00:17 2011
@@ -20,6 +20,7 @@
package org.apache.rave.inject;
import com.google.inject.AbstractModule;
+import com.google.inject.Provider;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
@@ -57,8 +58,13 @@ public class SpringBindingModule extends
private void bindInterfaces(Object bean) {
String fullClassName = Proxy.isProxyClass(bean.getClass()) ? bean.toString() : bean.getClass().getName();
if (fullClassName.matches(basePackage + ".*")) {
- for (Class clazz : bean.getClass().getInterfaces()) {
- bind(clazz).toInstance(bean);
+ for (final Class clazz : bean.getClass().getInterfaces()) {
+ bind(clazz).toInstance(new Provider() {
+ @Override
+ public Object get() {
+ return applicationContext.getBean(clazz);
+ }
+ });
}
}
}