@Autowired public PackageRepositoryService(PluginManager pluginManager, PackageRepositoryExtension packageRepositoryExtension, GoConfigService goConfigService, SecurityService securityService, EntityHashingService entityHashingService) { this.pluginManager = pluginManager; this.packageRepositoryExtension = packageRepositoryExtension; this.goConfigService = goConfigService; this.securityService = securityService; this.entityHashingService = entityHashingService; repositoryMetadataStore = RepositoryMetadataStore.getInstance(); }
public static void clear() { List<String> plugins = RepositoryMetadataStore.getInstance().getPlugins(); for (String pluginId : plugins) { RepositoryMetadataStore.getInstance().removeMetadata(pluginId); PackageMetadataStore.getInstance().removeMetadata(pluginId); } } }
private void handlePackageRepositoryProperties(List<String> list) { PackageConfigurations metadata = RepositoryMetadataStore.getInstance().getMetadata(pluginId()); for (ConfigurationProperty configurationProperty : packageRepository.getConfiguration()) { handleProperty(list, metadata, configurationProperty); } }
public String getConfigForDisplay() { String pluginId = pluginConfiguration.getId(); AbstractMetaDataStore metadataStore = RepositoryMetadataStore.getInstance(); List<ConfigurationProperty> propertiesToBeUsedForDisplay = ConfigurationDisplayUtil.getConfigurationPropertiesToBeUsedForDisplay(metadataStore, pluginId, configuration); String prefix = metadataStore.hasPlugin(pluginId) ? "" : "WARNING! Plugin missing for "; return prefix + "Repository: " + configuration.forDisplay(propertiesToBeUsedForDisplay); }
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); }; }
public static void clear() { List<String> plugins = RepositoryMetadataStore.getInstance().getPlugins(); for (String pluginId : plugins) { RepositoryMetadataStore.getInstance().removeMetadata(pluginId); PackageMetadataStore.getInstance().removeMetadata(pluginId); } } }
@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 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 shouldGetAllPluginIds() throws Exception { RepositoryMetadataStore metadataStore = RepositoryMetadataStore.getInstance(); metadataStore.addMetadataFor("plugin1", new PackageConfigurations()); metadataStore.addMetadataFor("plugin2", new PackageConfigurations()); metadataStore.addMetadataFor("plugin3", new PackageConfigurations()); assertThat(metadataStore.getPlugins().size(), is(3)); assertThat(metadataStore.getPlugins().contains("plugin1"), is(true)); assertThat(metadataStore.getPlugins().contains("plugin2"), is(true)); assertThat(metadataStore.getPlugins().contains("plugin3"), is(true)); }
@Test public void shouldBeAbleToCheckIfPluginExists() throws Exception { RepositoryMetadataStore metadataStore = RepositoryMetadataStore.getInstance(); PackageConfigurations repositoryConfigurationPut = new PackageConfigurations(); metadataStore.addMetadataFor("plugin-id", repositoryConfigurationPut); assertThat(metadataStore.hasPlugin("plugin-id"), is(true)); assertThat(metadataStore.hasPlugin("some-plugin-which-does-not-exist"), is(false)); } }
@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())); } }
@Before public void setUp() throws Exception { pluginDescriptor = new GoPluginDescriptor("plugin-id", "1.0", null, null, null, true); pluginManager = mock(PluginManager.class); packageRepositoryExtension = mock(PackageRepositoryExtension.class); metadataLoader = new PackageMaterialMetadataLoader(pluginManager, packageRepositoryExtension); RepositoryMetadataStore.getInstance().removeMetadata(pluginDescriptor.id()); PackageMetadataStore.getInstance().removeMetadata(pluginDescriptor.id()); }
@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 shouldReturnSomethingMoreSaneForToString() throws Exception { PackageMaterial material = MaterialsMother.packageMaterial(); RepositoryMetadataStore.getInstance().addMetadataFor(material.getPluginId(), new PackageConfigurations()); PackageMetadataStore.getInstance().addMetadataFor(material.getPluginId(), new PackageConfigurations()); assertThat(material.toString(), is("'PackageMaterial{Repository: [k1=repo-v1, k2=repo-v2] - Package: [k3=package-v1]}'")); }
@Test public void shouldConvertKeysToLowercaseInGetConfigForDisplay() throws Exception { RepositoryMetadataStore.getInstance().addMetadataFor("some-plugin", new PackageConfigurations()); PackageMetadataStore.getInstance().addMetadataFor("some-plugin", new PackageConfigurations()); Configuration configuration = new Configuration(create("kEY1", false, "vALue1"), create("KEY_MORE_2", false, "VALUE_2"), create("key_3", false, "value3")); PackageRepository repository = PackageRepositoryMother.create("repo1", "repo1-name", "some-plugin", "1", configuration); assertThat(repository.getConfigForDisplay(), is("Repository: [key1=vALue1, key_more_2=VALUE_2, key_3=value3]")); }
@Test public void shouldNotDisplayEmptyValuesInGetConfigForDisplay() throws Exception { RepositoryMetadataStore.getInstance().addMetadataFor("some-plugin", new PackageConfigurations()); PackageMetadataStore.getInstance().addMetadataFor("some-plugin", new PackageConfigurations()); Configuration configuration = new Configuration(create("rk1", false, ""), create("rk2", false, "some-non-empty-value"), create("rk3", false, null)); PackageRepository repository = PackageRepositoryMother.create("repo-id", "repo", "some-plugin", "version", configuration); assertThat(repository.getConfigForDisplay(), is("Repository: [rk2=some-non-empty-value]")); }
@Test public void shouldGetUriForDisplay() { RepositoryMetadataStore.getInstance().addMetadataFor("some-plugin", new PackageConfigurations()); PackageMetadataStore.getInstance().addMetadataFor("some-plugin", new PackageConfigurations()); PackageMaterial material = new PackageMaterial(); Configuration configuration = new Configuration(ConfigurationPropertyMother.create("k1", false, "repo-v1"), ConfigurationPropertyMother.create("k2", false, "repo-v2")); PackageRepository repository = PackageRepositoryMother.create("repo-id", "repo-name", "some-plugin", "version", configuration); PackageDefinition packageDefinition = PackageDefinitionMother.create("p-id", "package-name", new Configuration(ConfigurationPropertyMother.create("k3", false, "package-v1")), repository); material.setPackageDefinition(packageDefinition); assertThat(material.getUriForDisplay(), is("Repository: [k1=repo-v1, k2=repo-v2] - Package: [k3=package-v1]")); }
@Test public void shouldConvertKeysToLowercaseInGetConfigForDisplay() throws Exception { RepositoryMetadataStore.getInstance().addMetadataFor("some-plugin", new PackageConfigurations()); PackageMetadataStore.getInstance().addMetadataFor("some-plugin", new PackageConfigurations()); PackageRepository repository = PackageRepositoryMother.create("repo-id", "repo", "some-plugin", "version", new Configuration(create("rk1", false, "rv1"))); PackageDefinition packageDefinition = PackageDefinitionMother.create("p-id", "name", new Configuration(create("pack_key_1", false, "pack_value_1"), create("PACK_KEY_2", false, "PACK_VALUE_2"), create("pacK_KeY3", false, "pacKValue_3")), repository); packageDefinition.setRepository(repository); assertThat(packageDefinition.getConfigForDisplay(), is("Repository: [rk1=rv1] - Package: [pack_key_1=pack_value_1, pack_key_2=PACK_VALUE_2, pack_key3=pacKValue_3]")); }
@Test public void shouldNotDisplayEmptyValuesInGetConfigForDisplay() throws Exception { RepositoryMetadataStore.getInstance().addMetadataFor("some-plugin", new PackageConfigurations()); PackageMetadataStore.getInstance().addMetadataFor("some-plugin", new PackageConfigurations()); PackageRepository repository = PackageRepositoryMother.create("repo-id", "repo", "some-plugin", "version", new Configuration(create("rk1", false, "rv1"))); PackageDefinition packageDefinition = PackageDefinitionMother.create("p-id", "name", new Configuration(create("pk1", false, ""), create("pk2", false, "pack_value_2"), create("pk3", false, null)), repository); packageDefinition.setRepository(repository); assertThat(packageDefinition.getConfigForDisplay(), is("Repository: [rk1=rv1] - Package: [pk2=pack_value_2]")); }