View Javadoc

1   /**
2    * - Digitalis Internal Framework v2.0 - (C) 2007, Digitalis Informatica. Distribuicao e Gestao de Informatica, Lda.
3    * Estrada de Paco de Arcos num.9 - Piso -1 2780-666 Paco de Arcos Telefone: (351) 21 4408990 Fax: (351) 21 4408999
4    * http://www.digitalis.pt
5    */
6   package pt.digitalis.dif.ioc;
7   
8   import pt.digitalis.dif.codegen.util.ClassEnhancerImpl;
9   import pt.digitalis.dif.codegen.util.IClassEnhancer;
10  import pt.digitalis.dif.controller.sanitycheck.GeneralCheckUp;
11  import pt.digitalis.dif.dem.config.DEMRegistratorImpl;
12  import pt.digitalis.dif.dem.config.IDEMRegistrator;
13  import pt.digitalis.dif.dem.managers.IDEMManager;
14  import pt.digitalis.dif.dem.managers.IMessageManager;
15  import pt.digitalis.dif.dem.managers.IParameterManager;
16  import pt.digitalis.dif.dem.managers.IRegistrationManager;
17  import pt.digitalis.dif.dem.managers.impl.DEMManagerImpl;
18  import pt.digitalis.dif.dem.managers.impl.MessageManagerImpl;
19  import pt.digitalis.dif.dem.managers.impl.ParameterManagerImpl;
20  import pt.digitalis.dif.dem.managers.impl.RegistrationManagerImpl;
21  import pt.digitalis.dif.dem.objects.ILicense;
22  import pt.digitalis.dif.dem.objects.LicenseImpl;
23  import pt.digitalis.dif.sanitycheck.ISanityCheckTestSuite;
24  import pt.digitalis.dif.utils.logging.ErrorLogManagerDIFLoggerImpl;
25  import pt.digitalis.dif.utils.logging.IErrorLogManager;
26  import pt.digitalis.dif.utils.mail.sanitycheck.CheckMail;
27  import pt.digitalis.utils.config.ConfigurationsPreferencesImpl;
28  import pt.digitalis.utils.config.IConfigurations;
29  import pt.digitalis.utils.ioc.modules.IIoCModule;
30  import pt.digitalis.utils.ioc.modules.IoCBinder;
31  
32  /**
33   * Core Module of the DIF Framework. All services that support the core functionality are declared in this Module
34   * 
35   * @author Pedro Viegas <a href="mailto:pviegas@digitalis.pt">pviegas@digitalis.pt</a>
36   * @author Rodrigo Gonçalves <a href="mailto:rgoncalves@digitalis.pt">rgoncalves@digitalis.pt</a>
37   * @created Oct 2, 2007
38   */
39  public class DIFCoreModule implements IIoCModule {
40  
41      /**
42       * @see pt.digitalis.utils.ioc.modules.IIoCModule#configure(pt.digitalis.utils.ioc.modules.IoCBinder)
43       */
44      public void configure(IoCBinder binder)
45      {
46  
47          // Code Generation Services
48          binder.bind(IClassEnhancer.class, ClassEnhancerImpl.class).asSingleton();
49          binder.bind(IDEMRegistrator.class, DEMRegistratorImpl.class).asSingleton();
50  
51          // DEM Managers
52          binder.bind(IDEMManager.class, DEMManagerImpl.class).asSingleton();
53          binder.bind(IRegistrationManager.class, RegistrationManagerImpl.class).asSingleton();
54          binder.bind(IMessageManager.class, MessageManagerImpl.class).withId("static").asSingleton();
55          binder.bind(IParameterManager.class, ParameterManagerImpl.class).asSingleton();
56  
57          // Core functionalities
58          binder.bind(IConfigurations.class, ConfigurationsPreferencesImpl.class).asSingleton();
59  
60          // Utilities
61          binder.bind(ILicense.class, LicenseImpl.class);
62          binder.bind(IErrorLogManager.class, ErrorLogManagerDIFLoggerImpl.class).asSingleton();
63  
64          // Other Modules...
65          binder.install(new ControllerModule());
66          binder.install(new StaticSecurityModule());
67          binder.install(new ParametersModule());
68          binder.install(new DIFCoreSanityCheckModule());
69  
70          // Custom selected modules
71          binder.install(new DefaultModulesSeleccionModule());
72  
73          // Sanity checks
74          binder.bind(ISanityCheckTestSuite.class, CheckMail.class).withId("SanityCheckMail");
75          binder.bind(ISanityCheckTestSuite.class, GeneralCheckUp.class).withId("SanityCheckGeneral");
76      }
77  }