public RepositoryConfiguration getRepositoryMetadata(String pluginId) { PackageConfigurations metadata = repositoryMetadataStore.getMetadata(pluginId); if (metadata != null) { return metadata.getRepositoryConfiguration(); } return null; } }
private void handlePackageRepositoryProperties(List<String> list) { PackageConfigurations metadata = RepositoryMetadataStore.getInstance().getMetadata(pluginId()); for (ConfigurationProperty configurationProperty : packageRepository.getConfiguration()) { handleProperty(list, metadata, configurationProperty); } }
private SecureKeyInfoProvider getSecureKeyInfoProvider() { final RepositoryMetadataStore repositoryMetadataStore = RepositoryMetadataStore.getInstance(); final PackageConfigurations metadata = repositoryMetadataStore.getMetadata(pluginConfiguration.getId()); if(metadata==null){ return null; } return key -> { PackageConfiguration packageConfiguration = metadata.get(key); return packageConfiguration.getOption(PackageConfiguration.SECURE); }; }
@PostConstruct public void applyPackagePluginMetadata() { String pluginId = pluginConfiguration.getId(); for (ConfigurationProperty configurationProperty : configuration) { RepositoryMetadataStore repositoryMetadataStore = RepositoryMetadataStore.getInstance(); if (repositoryMetadataStore.getMetadata(pluginId) != null) { boolean isSecureProperty = repositoryMetadataStore.hasOption(pluginId, configurationProperty.getConfigurationKey().getName(), PackageConfiguration.SECURE); configurationProperty.handleSecureValueConfiguration(isSecureProperty); } } for (PackageDefinition packageDefinition : packages) { packageDefinition.applyPackagePluginMetadata(pluginId); } }
@Test public void shouldReturnNullForMetadataIfPluginIdIsNotProvided() { assertNull(RepositoryMetadataStore.getInstance().getMetadata("")); }
@Test public void shouldReturnNullForMetadataIfPluginIdIsNonExistent() { assertNull(RepositoryMetadataStore.getInstance().getMetadata("non-existent-plugin-id")); }
@Test public void shouldThrowExceptionWhenNullRepositoryConfigurationReturned() { when(packageRepositoryExtension.getRepositoryConfiguration(pluginDescriptor.id())).thenReturn(null); try { metadataLoader.fetchRepositoryAndPackageMetaData(pluginDescriptor); } catch (Exception e) { assertThat(e.getMessage(), is("Plugin[plugin-id] returned null repository configuration")); } assertThat(RepositoryMetadataStore.getInstance().getMetadata(pluginDescriptor.id()), nullValue()); assertThat(PackageMetadataStore.getInstance().getMetadata(pluginDescriptor.id()), nullValue()); }
@Test public void shouldThrowExceptionWhenNullPackageConfigurationReturned() { when(packageRepositoryExtension.getPackageConfiguration(pluginDescriptor.id())).thenReturn(null); try { metadataLoader.fetchRepositoryAndPackageMetaData(pluginDescriptor); } catch (Exception e) { assertThat(e.getMessage(), is("Plugin[plugin-id] returned null repository configuration")); } assertThat(RepositoryMetadataStore.getInstance().getMetadata(pluginDescriptor.id()), nullValue()); assertThat(PackageMetadataStore.getInstance().getMetadata(pluginDescriptor.id()), nullValue()); }
@Test public void shouldPopulateDataCorrectly() throws Exception { PackageConfigurations repositoryConfigurationPut = new PackageConfigurations(); RepositoryMetadataStore.getInstance().addMetadataFor("plugin-id", repositoryConfigurationPut); assertThat(RepositoryMetadataStore.getInstance().getMetadata("plugin-id"), is(repositoryConfigurationPut)); }
@Test public void shouldFetchPackageMetadataForPluginsWhichImplementPackageRepositoryMaterialExtensionPoint() { RepositoryConfiguration expectedRepoConfigurations = new RepositoryConfiguration(); com.thoughtworks.go.plugin.api.material.packagerepository.PackageConfiguration expectedPackageConfigurations = new PackageConfiguration(); when(packageRepositoryExtension.getRepositoryConfiguration(pluginDescriptor.id())).thenReturn(expectedRepoConfigurations); when(packageRepositoryExtension.getPackageConfiguration(pluginDescriptor.id())).thenReturn(expectedPackageConfigurations); metadataLoader.fetchRepositoryAndPackageMetaData(pluginDescriptor); assertThat(RepositoryMetadataStore.getInstance().getMetadata(pluginDescriptor.id()).getRepositoryConfiguration(), is(expectedRepoConfigurations)); assertThat(PackageMetadataStore.getInstance().getMetadata(pluginDescriptor.id()).getPackageConfiguration(), is(expectedPackageConfigurations)); }
@Test public void shouldRemoveMetadataOnPluginUnLoadedCallback() throws Exception { RepositoryMetadataStore.getInstance().addMetadataFor(pluginDescriptor.id(), new PackageConfigurations()); PackageMetadataStore.getInstance().addMetadataFor(pluginDescriptor.id(), new PackageConfigurations()); when(packageRepositoryExtension.canHandlePlugin(pluginDescriptor.id())).thenReturn(true); metadataLoader.pluginUnLoaded(pluginDescriptor); assertThat(RepositoryMetadataStore.getInstance().getMetadata(pluginDescriptor.id()), is(nullValue())); assertThat(PackageMetadataStore.getInstance().getMetadata(pluginDescriptor.id()), is(nullValue())); } }