Ejemplo n.º 1
0
 private void initializeListeners(Config config) {
   for (final ListenerConfig listenerCfg : config.getListenerConfigs()) {
     Object listener = listenerCfg.getImplementation();
     if (listener == null) {
       try {
         listener = ClassLoaderUtil.newInstance(configClassLoader, listenerCfg.getClassName());
       } catch (Exception e) {
         logger.severe(e);
       }
     }
     if (listener instanceof HazelcastInstanceAware) {
       ((HazelcastInstanceAware) listener).setHazelcastInstance(hazelcastInstance);
     }
     boolean known = false;
     if (listener instanceof DistributedObjectListener) {
       final ProxyServiceImpl proxyService = (ProxyServiceImpl) nodeEngine.getProxyService();
       proxyService.addProxyListener((DistributedObjectListener) listener);
       known = true;
     }
     if (listener instanceof MembershipListener) {
       clusterService.addMembershipListener((MembershipListener) listener);
       known = true;
     }
     if (listener instanceof MigrationListener) {
       partitionService.addMigrationListener((MigrationListener) listener);
       known = true;
     }
     if (listener instanceof PartitionLostListener) {
       partitionService.addPartitionLostListener((PartitionLostListener) listener);
       known = true;
     }
     if (listener instanceof LifecycleListener) {
       hazelcastInstance.lifecycleService.addLifecycleListener((LifecycleListener) listener);
       known = true;
     }
     if (listener instanceof ClientListener) {
       String serviceName = ClientEngineImpl.SERVICE_NAME;
       nodeEngine.getEventService().registerLocalListener(serviceName, serviceName, listener);
       known = true;
     }
     if (listener != null && !known) {
       final String error = "Unknown listener type: " + listener.getClass();
       Throwable t = new IllegalArgumentException(error);
       logger.warning(error, t);
     }
   }
 }