@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 shouldAnswerIfKeyHasGivenOption() throws Exception { PackageConfigurations repositoryConfigurationPut = new PackageConfigurations(); repositoryConfigurationPut.add(new PackageConfiguration("key-one").with(PackageConfiguration.SECURE, true).with(PackageConfiguration.REQUIRED, true)); repositoryConfigurationPut.add(new PackageConfiguration("key-two")); RepositoryMetadataStore metadataStore = RepositoryMetadataStore.getInstance(); metadataStore.addMetadataFor("plugin-id", repositoryConfigurationPut); assertThat(metadataStore.hasOption("plugin-id", "key-one", PackageConfiguration.SECURE),is(true)); assertThat(metadataStore.hasOption("plugin-id", "key-one", PackageConfiguration.REQUIRED),is(true)); assertThat(metadataStore.hasOption("plugin-id", "key-one", PackageConfiguration.PART_OF_IDENTITY),is(true)); assertThat(metadataStore.hasOption("plugin-id", "key-two", PackageConfiguration.SECURE),is(false)); assertThat(metadataStore.hasOption("plugin-id", "key-two", PackageConfiguration.REQUIRED),is(true)); assertThat(metadataStore.hasOption("plugin-id", "key-two", PackageConfiguration.PART_OF_IDENTITY),is(true)); }
void performPluginValidationsFor(final PackageRepository packageRepository) { if (!validatePluginId(packageRepository)) { return; } for (ConfigurationProperty configurationProperty : packageRepository.getConfiguration()) { String key = configurationProperty.getConfigurationKey().getName(); String pluginId = packageRepository.getPluginConfiguration().getId(); if (repositoryMetadataStore.hasOption(pluginId, key, PackageConfiguration.REQUIRED)) { if (configurationProperty.getValue().isEmpty()) { configurationProperty.addErrorAgainstConfigurationValue("This field is required"); } } } ValidationResult validationResult = packageRepositoryExtension.isRepositoryConfigurationValid(packageRepository.getPluginConfiguration().getId(), populateConfiguration(packageRepository.getConfiguration())); for (ValidationError error : validationResult.getErrors()) { packageRepository.addConfigurationErrorFor(error.getKey(), error.getMessage()); } }