KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > directwebremoting > guice > spring > SpringModule


1 package org.directwebremoting.guice.spring;
2
3 import com.google.inject.AbstractModule;
4 import com.google.inject.Provider;
5
6 import static org.directwebremoting.guice.DwrScopes.GLOBAL;
7
8 import org.springframework.beans.factory.BeanFactory;
9
10 /**
11  * Ties {@code SpringIntegration.fromSpring} providers
12  * to a BeanFactory whose provider is a Closeable in global
13  * application scope, which means that it will be destroyed
14  * when the servlet context is destroyed.
15  */

16 public class SpringModule extends AbstractModule
17 {
18     public SpringModule(BeanFactoryLoader loader)
19     {
20         this.provider = new CloseableBeanFactoryProvider(loader);
21     }
22     
23     protected void configure()
24     {
25         bind(BeanFactory.class)
26             .toProvider(CloseableBeanFactoryProvider.class)
27             .asEagerSingleton();
28  
29         bind(CloseableBeanFactoryProvider.class)
30             .toProvider(providerOfProvider)
31             .in(GLOBAL);
32     }
33     
34     private final CloseableBeanFactoryProvider provider;
35     
36     private final Provider<CloseableBeanFactoryProvider> providerOfProvider =
37         new Provider<CloseableBeanFactoryProvider>()
38         {
39             public CloseableBeanFactoryProvider get()
40             {
41                 return provider;
42             }
43         };
44 }
45
Popular Tags