1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.universAAL.ri.gateway.communicator;
23
24 import org.osgi.framework.BundleActivator;
25 import org.osgi.framework.BundleContext;
26 import org.universAAL.middleware.container.ModuleContext;
27 import org.universAAL.middleware.container.osgi.uAALBundleContainer;
28 import org.universAAL.middleware.tracker.IBusMemberRegistry;
29 import org.universAAL.middleware.tracker.IBusMemberRegistryListener;
30 import org.universAAL.ri.gateway.communicator.service.impl.CommunicatorStarter;
31 import org.universAAL.ri.gateway.eimanager.ExportOperationInterceptor;
32 import org.universAAL.ri.gateway.eimanager.ImportOperationInterceptor;
33 import org.universAAL.ri.gateway.eimanager.impl.EIManagerRegistryListener;
34 import org.universAAL.ri.gateway.eimanager.impl.EIOperationManager;
35 import org.universAAL.ri.gateway.eimanager.impl.ExportManagerImpl;
36 import org.universAAL.ri.gateway.eimanager.impl.ImportManagerImpl;
37 import org.universAAL.ri.gateway.eimanager.impl.security.ExportSecurityOperationInterceptor;
38 import org.universAAL.ri.gateway.eimanager.impl.security.ImportSecurityOperationInterceptor;
39
40
41
42
43
44
45
46
47 public class Activator implements BundleActivator {
48
49
50
51
52 private CommunicatorStarter inst;
53 public static BundleContext bc;
54 public static ModuleContext mc;
55
56 private IBusMemberRegistry registry;
57
58 private IBusMemberRegistryListener exportRegistryListener;
59 private IBusMemberRegistryListener importRegistryListener;
60
61 private ExportManagerImpl exportManager;
62 private ImportManagerImpl importManager;
63
64
65
66
67
68
69 public void start(final BundleContext context) throws Exception {
70 bc = context;
71
72 mc = uAALBundleContainer.THE_CONTAINER
73 .registerModule(new Object[] { context });
74
75 inst = new CommunicatorStarter(context);
76
77 exportManager = new ExportManagerImpl(inst.getCommunicator());
78 importManager = new ImportManagerImpl(inst.getCommunicator());
79
80 inst.setManagers(importManager, exportManager);
81
82 registry = (IBusMemberRegistry) mc.getContainer().fetchSharedObject(mc,
83 IBusMemberRegistry.busRegistryShareParams);
84
85 exportRegistryListener = new EIManagerRegistryListener(exportManager);
86
87 importRegistryListener = new EIManagerRegistryListener(importManager);
88
89 registry.addBusRegistryListener(exportRegistryListener, true);
90 registry.addBusRegistryListener(importRegistryListener, true);
91
92 EIOperationManager.Instance.init();
93
94 Activator.mc.getContainer().shareObject(Activator.mc, new ImportSecurityOperationInterceptor(),
95 new Object[] { ImportOperationInterceptor.class.getName() });
96
97 Activator.mc.getContainer().shareObject(Activator.mc, new ExportSecurityOperationInterceptor(),
98 new Object[] { ExportOperationInterceptor.class.getName() });
99
100 }
101
102
103
104
105
106
107
108 public void stop(final BundleContext context) {
109 inst.stop();
110 if (registry!= null){
111 registry.removeBusRegistryListener(exportRegistryListener);
112 registry.removeBusRegistryListener(importRegistryListener);
113 }
114
115 if (exportManager != null){
116 exportManager.shutdown();
117 }
118 }
119
120 }