1 | 0 | |
2 | |
|
3 | |
|
4 | |
|
5 | |
|
6 | |
package pt.digitalis.dif.ioc; |
7 | |
|
8 | |
import pt.digitalis.dif.controller.security.managers.IAuthenticationManager; |
9 | |
import pt.digitalis.dif.controller.security.managers.IAuthorizationManager; |
10 | |
import pt.digitalis.dif.controller.security.managers.IIdentityManager; |
11 | |
import pt.digitalis.dif.dem.managers.IMessageManager; |
12 | |
import pt.digitalis.dif.utils.logging.DIFLogger; |
13 | |
import pt.digitalis.utils.common.StringUtils; |
14 | |
import pt.digitalis.utils.ioc.modules.IIoCDynamicModule; |
15 | |
import pt.digitalis.utils.ioc.modules.IoCBinder; |
16 | |
import pt.digitalis.utils.ioc.modules.IoCBinding; |
17 | |
|
18 | |
|
19 | |
|
20 | |
|
21 | |
|
22 | 0 | public class DefaultModulesSeleccionModule implements IIoCDynamicModule { |
23 | |
|
24 | |
|
25 | 0 | private DIFDefaultModulesConfiguration moduleConfig = DIFDefaultModulesConfiguration.getInstance(); |
26 | |
|
27 | |
|
28 | |
|
29 | |
|
30 | |
|
31 | |
|
32 | |
private void bindDefaultModule(IoCBinder binder, Class<?> serviceClass) |
33 | |
{ |
34 | 0 | IoCBinding previousBinding = moduleConfig.getDefaultImplementationBindingFor(serviceClass); |
35 | 0 | IoCBinding newDefaultBinding = null; |
36 | |
|
37 | 0 | if (previousBinding != null) |
38 | |
{ |
39 | 0 | newDefaultBinding = binder.bind(serviceClass, previousBinding.getImplementationType()); |
40 | 0 | if (previousBinding.isSingleton()) |
41 | 0 | newDefaultBinding.asSingleton(); |
42 | |
|
43 | 0 | DIFLogger.getLogger().info( |
44 | 0 | " => " |
45 | 0 | + StringUtils.camelCaseToString(previousBinding.getInterfaceType().getSimpleName() |
46 | 0 | .substring(1)) + ": " + previousBinding.getId() + " (" |
47 | 0 | + previousBinding.getImplementationType().getSimpleName() + ")"); |
48 | |
} |
49 | |
else |
50 | |
{ |
51 | 0 | DIFLogger.getLogger().warn(" => " + "No bindings for: " + serviceClass.getCanonicalName()); |
52 | |
} |
53 | 0 | } |
54 | |
|
55 | |
|
56 | |
|
57 | |
|
58 | |
public void configure(IoCBinder binder) |
59 | |
{ |
60 | 0 | DIFLogger.getLogger().info("Core Module Resolution"); |
61 | |
|
62 | 0 | bindDefaultModule(binder, IMessageManager.class); |
63 | 0 | bindDefaultModule(binder, IIdentityManager.class); |
64 | 0 | bindDefaultModule(binder, IAuthenticationManager.class); |
65 | 0 | bindDefaultModule(binder, IAuthorizationManager.class); |
66 | |
|
67 | 0 | DIFLogger.getLogger().info(""); |
68 | 0 | } |
69 | |
} |