@Override public void add(DeploymentModuleIdentifier identifier, ModuleDeployment deployment) { final List<DeploymentRepositoryListener> listeners; final boolean suspended; synchronized (this) { final Map<DeploymentModuleIdentifier, DeploymentHolder> modules = new HashMap<DeploymentModuleIdentifier, DeploymentHolder>(this.modules); modules.put(identifier, new DeploymentHolder(deployment)); this.modules = Collections.unmodifiableMap(modules); listeners = new ArrayList<DeploymentRepositoryListener>(this.listeners); suspended = this.suspended; } for (final DeploymentRepositoryListener listener : listeners) { try { listener.deploymentAvailable(identifier, deployment); if (suspended) { listener.deploymentSuspended(identifier); } } catch (Throwable t) { EjbLogger.DEPLOYMENT_LOGGER.deploymentAddListenerException(t); } } }
public synchronized void add(DeploymentModuleIdentifier identifier, ModuleDeployment deployment) { final Map<DeploymentModuleIdentifier, ModuleDeployment> modules = new HashMap<DeploymentModuleIdentifier, ModuleDeployment>(this.modules); modules.put(identifier, deployment); this.modules = Collections.unmodifiableMap(modules); for(final DeploymentRepositoryListener listener : listeners) { try { listener.deploymentAvailable(identifier, deployment); } catch (Throwable t) { EjbLogger.ROOT_LOGGER.deploymentAddListenerException(t); } } }