33 */
44package org .inaetics .wiring .topology .promiscuous ;
55
6- import java .util .ArrayList ;
76import java .util .Collection ;
87import java .util .Collections ;
98import java .util .Dictionary ;
109import java .util .HashMap ;
11- import java .util .HashSet ;
1210import java .util .Hashtable ;
13- import java .util .List ;
1411import java .util .Map ;
1512import java .util .Set ;
13+ import java .util .concurrent .ConcurrentHashMap ;
1614
1715import org .apache .felix .dm .Component ;
1816import org .apache .felix .dm .DependencyManager ;
3230import org .inaetics .wiring .endpoint .WiringTopologyManager ;
3331import org .osgi .framework .BundleContext ;
3432import org .osgi .framework .ServiceReference ;
35- import org .osgi .framework .ServiceRegistration ;
3633import org .osgi .service .cm .ConfigurationException ;
3734import org .osgi .service .cm .ManagedService ;
3835
@@ -47,17 +44,18 @@ public final class PromiscuousTopologyManager extends AbstractWiringEndpointPubl
4744
4845 public final static String SERVICE_PID = "org.amdatu.remote.topology.promiscuous" ;
4946
50- private final Set <WiringReceiver > m_exportableReceivers = Collections .newSetFromMap (new HashMap <WiringReceiver , Boolean >());
47+ private final Set <WiringReceiver > m_exportableReceivers = Collections .newSetFromMap (new ConcurrentHashMap <WiringReceiver , Boolean >());
5148 private final Map <WiringReceiver , Map <WiringAdmin , ExportRegistration >> m_exportedReceivers =
52- new HashMap <WiringReceiver , Map <WiringAdmin , ExportRegistration >>();
49+ new ConcurrentHashMap <WiringReceiver , Map <WiringAdmin , ExportRegistration >>();
5350
54- private final Set <WiringEndpointDescription > m_importableEndpoints = new HashSet <WiringEndpointDescription >( );
51+ private final Set <WiringEndpointDescription > m_importableEndpoints = Collections . newSetFromMap ( new ConcurrentHashMap <WiringEndpointDescription , Boolean >() );
5552 private final Map <WiringEndpointDescription , Map <WiringAdmin , ImportRegistration >> m_importedEndpoints =
56- new HashMap <WiringEndpointDescription , Map <WiringAdmin , ImportRegistration >>();
53+ new ConcurrentHashMap <WiringEndpointDescription , Map <WiringAdmin , ImportRegistration >>();
54+
5755 private final Map <ImportRegistration , Component > m_registeredSenders =
58- new HashMap <ImportRegistration , Component >();
56+ new ConcurrentHashMap <ImportRegistration , Component >();
5957
60- private final List <WiringAdmin > m_wiringAdmins = new ArrayList <WiringAdmin >( );
58+ private final Set <WiringAdmin > m_wiringAdmins = Collections . newSetFromMap ( new ConcurrentHashMap <WiringAdmin , Boolean >() );
6159
6260 private volatile BundleContext m_context ;
6361
@@ -267,6 +265,7 @@ private void unImportEndpoints(WiringAdmin admin) {
267265 }
268266
269267 private void unImportEndpoint (WiringEndpointDescription endpointDescription ) {
268+ logInfo ("unimport wiring endpoint %s" , endpointDescription .getId ());
270269 m_importableEndpoints .remove (endpointDescription );
271270 Map <WiringAdmin , ImportRegistration > adminMap = m_importedEndpoints .remove (endpointDescription );
272271 Collection <ImportRegistration > registrations = adminMap .values ();
@@ -276,12 +275,14 @@ private void unImportEndpoint(WiringEndpointDescription endpointDescription) {
276275 }
277276
278277 private void unImportEndpoint (ImportRegistration registration ) {
278+ logInfo ("unimport registration %s" , registration .getImportReference ().getEndpointDescription ().getId ());
279279 unregisterService (registration );
280280 registration .close ();
281281 }
282282
283283 private void unregisterService (ImportRegistration registration ) {
284284 Component component = m_registeredSenders .get (registration );
285+ logInfo ("unregistering WiringsSender %s" , component .getService ());
285286 m_manager .remove (component );
286287 m_registeredSenders .remove (registration );
287288 }
0 commit comments