protected ProjectConfigRegistry(@NotNull Project project) { this.project = project; this.projectBusClient = MessageBusClient.forProject(project, this); this.applicationBusClient = MessageBusClient.forApplication(this); Disposer.register(project, this); }
@Override public void initComponent() { MessageBusClient.ProjectClient projectClient = MessageBusClient.forProject(project, project); FileCacheUpdatedMessage.addListener(projectClient, this, (e) -> { refreshFileView(e.getFiles()); }); }
@Override public void projectOpened(Project project) { MessageBusClient.ProjectClient projectMbClient = MessageBusClient.forProject(project, InvalidPasswordMonitorComponent.this); ClientConfigAddedMessage.addListener(projectMbClient, this, e -> forgetLoginProblem(e.getClientConfig().getServerConfig())); ClientConfigRemovedMessage.addListener(projectMbClient, this, event -> forgetLoginProblem(event.getClientConfig().getServerConfig())); }
public CacheStoreUpdateListener(@NotNull Project project, @NotNull ProjectCacheStore cache, @NotNull Disposable disposableParent) { this.project = project; this.cache = cache; // TODO should be an argument, rather than the cache directly? this.pendingCache = new CachePendingActionHandlerImpl(cache); MessageBusClient.ApplicationClient appClient = MessageBusClient.forApplication(disposableParent); MessageBusClient.ProjectClient projectClient = MessageBusClient.forProject(project, disposableParent); CacheListener listener = new CacheListener(); String cacheId = AbstractCacheMessage.createCacheId(project, CacheStoreUpdateListener.class); ClientActionMessage.addListener(appClient, cacheId, listener); // TODO this causes the event listener to be fired twice. // Somewhere, this ClientOpenCacheMessage call invokes the exact same listener // method twice. Either the listener is registered twice, or the event object // is being passed to send() twice. ClientOpenCacheMessage.addListener(appClient, cacheId, listener); DescribeChangelistCacheMessage.addListener(appClient, cacheId, listener); FileActionMessage.addListener(appClient, cacheId, listener); JobCacheMessage.addListener(appClient, cacheId, listener); JobSpecCacheMessage.addListener(appClient, cacheId, listener); ListClientsForUserCacheMessage.addListener(appClient, cacheId, listener); ServerActionCacheMessage.addListener(appClient, cacheId, listener); ClientConfigRemovedMessage.addListener(projectClient, cacheId, listener); }
MessageBusClient.ProjectClient projClient = MessageBusClient.forProject(project, this); ClientConfigAddedMessage.addListener(projClient, this, (e) -> clientConfigs.put(e.getRoot(), e.getClientConfig())); ClientConfigRemovedMessage.addListener(projClient, this,
@Test void removeClientConfig_registered() { ProjectConfigRegistry registry = new ProjectConfigRegistryImpl(idea.getMockProject()); final List<ClientConfig> added = new ArrayList<>(); final List<ClientConfig> removed = new ArrayList<>(); MessageBusClient.ProjectClient client = MessageBusClient.forProject(idea.getMockProject(), idea.getMockProject()); ClientConfigAddedMessage.addListener(client, this, e -> added.add(e.getClientConfig())); ClientConfigRemovedMessage.addListener(client, this, (e) -> removed.add(e.getClientConfig())); ClientConfig config = createClientConfig(); VirtualFile root = MockVirtualFileSystem.createRoot(); registry.addClientConfig(config, root); assertEquals(1, added.size()); added.clear(); registry.removeClientConfigAt(root); assertEquals(0, added.size()); assertEquals(1, removed.size()); assertSame(config, removed.get(0)); ClientConfig fetchedState = registry.getRegisteredClientConfigState(config.getClientServerRef()); assertNull(fetchedState); }
MessageBusClient.ProjectClient mbus = MessageBusClient.forProject(project, this);
@Test void projectClosed() { ProjectConfigRegistry registry = new ProjectConfigRegistryImpl(idea.getMockProject()); final List<ClientConfig> added = new ArrayList<>(); final List<ClientConfig> removed = new ArrayList<>(); MessageBusClient.ProjectClient client = MessageBusClient.forProject(idea.getMockProject(), idea.getMockProject()); ClientConfigAddedMessage.addListener(client, this, e -> added.add(e.getClientConfig())); ClientConfigRemovedMessage.addListener(client, this, (e) -> removed.add(e.getClientConfig())); ClientConfig config = createClientConfig(); VirtualFile root = MockVirtualFileSystem.createRoot(); registry.addClientConfig(config, root); assertEquals(1, added.size()); added.clear(); registry.projectClosed(); assertEquals(0, added.size()); assertEquals(1, removed.size()); assertSame(config, removed.get(0)); ClientConfig fetchedState = registry.getRegisteredClientConfigState(config.getClientServerRef()); assertNull(fetchedState); // closing the project should turn off further registration removed.clear(); assertThrows(Throwable.class, () -> registry.addClientConfig(config, root)); assertEquals(0, added.size()); assertThrows(Throwable.class, () -> registry.removeClientConfigAt(root)); assertEquals(0, removed.size()); }
@Test void disposeComponent() { ProjectConfigRegistry registry = new ProjectConfigRegistryImpl(idea.getMockProject()); final List<ClientConfig> added = new ArrayList<>(); final List<ClientConfig> removed = new ArrayList<>(); MessageBusClient.ProjectClient client = MessageBusClient.forProject(idea.getMockProject(), idea.getMockProject()); ClientConfigAddedMessage.addListener(client, this, e -> added.add(e.getClientConfig())); ClientConfigRemovedMessage.addListener(client, this, (e) -> removed.add(e.getClientConfig())); ClientConfig config = createClientConfig(); VirtualFile root = MockVirtualFileSystem.createRoot(); registry.addClientConfig(config, root); assertEquals(1, added.size()); added.clear(); registry.disposeComponent(); assertEquals(0, added.size()); assertEquals(1, removed.size()); assertSame(config, removed.get(0)); ClientConfig fetchedState = registry.getRegisteredClientConfigState(config.getClientServerRef()); assertNull(fetchedState); // closing the project should turn off further registration removed.clear(); assertThrows(Throwable.class, () -> registry.addClientConfig(config, root)); assertEquals(0, added.size()); assertThrows(Throwable.class, () -> registry.removeClientConfigAt(root)); assertEquals(0, removed.size()); }
@Test void addClientConfig_new() { ProjectConfigRegistry registry = new ProjectConfigRegistryImpl(idea.getMockProject()); final List<ClientConfig> added = new ArrayList<>(); MessageBusClient.ProjectClient client = MessageBusClient.forProject(idea.getMockProject(), idea.getMockProject()); ClientConfigAddedMessage.addListener(client, this, e -> added.add(e.getClientConfig())); ClientConfigRemovedMessage.addListener(client, this, (event) -> fail("incorrectly called remove")); ClientConfig config = createClientConfig(); VirtualFile root = MockVirtualFileSystem.createRoot(); registry.addClientConfig(config, root); assertEquals(1, added.size()); assertSame(config, added.get(0)); ClientConfig fetchedState = registry.getRegisteredClientConfigState(config.getClientServerRef()); assertNotNull(fetchedState); assertSame(config, fetchedState); }
@Test void removeClientConfig_notRegistered() { ProjectConfigRegistry registry = new ProjectConfigRegistryImpl(idea.getMockProject()); final List<ClientConfig> removed = new ArrayList<>(); MessageBusClient.ProjectClient client = MessageBusClient.forProject(idea.getMockProject(), idea.getMockProject()); ClientConfigAddedMessage.addListener(client, this, e -> fail("should not have added anything")); ClientConfigRemovedMessage.addListener(client, this, (e) -> removed.add(e.getClientConfig())); ClientConfig config = createClientConfig(); registry.removeClientConfigAt(MockVirtualFileSystem.createRoot()); assertEquals(0, removed.size()); ClientConfig fetchedState = registry.getRegisteredClientConfigState(config.getClientServerRef()); assertNull(fetchedState); }
final List<ClientConfig> added = new ArrayList<>(); final List<ClientConfig> removed = new ArrayList<>(); MessageBusClient.ProjectClient client = MessageBusClient.forProject(idea.getMockProject(), idea.getMockProject()); ClientConfigAddedMessage.addListener(client, this, e -> added.add(e.getClientConfig())); ClientConfigRemovedMessage.addListener(client, this, (e) -> removed.add(e.getClientConfig()));
MessageBusClient.ProjectClient clientBus = MessageBusClient.forProject(project, parentDisposable);
public void initComponent() { MessageBusClient.ApplicationClient appClient = MessageBusClient.forApplication(this); MessageBusClient.ProjectClient projClient = MessageBusClient.forProject(project, this); CancellationMessage.addListener(projClient, this, new CancellationMessage.Listener() { @Override