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);
+                    }
+                });
             }
         }
     }