diff --git a/data-prepper-plugins/saas-source-plugins/confluence-source/src/main/java/org/opensearch/dataprepper/plugins/source/confluence/ConfluenceService.java b/data-prepper-plugins/saas-source-plugins/confluence-source/src/main/java/org/opensearch/dataprepper/plugins/source/confluence/ConfluenceService.java index a95be6635b..9a6971de6e 100644 --- a/data-prepper-plugins/saas-source-plugins/confluence-source/src/main/java/org/opensearch/dataprepper/plugins/source/confluence/ConfluenceService.java +++ b/data-prepper-plugins/saas-source-plugins/confluence-source/src/main/java/org/opensearch/dataprepper/plugins/source/confluence/ConfluenceService.java @@ -13,12 +13,12 @@ import io.micrometer.core.instrument.Counter; import lombok.extern.slf4j.Slf4j; import org.opensearch.dataprepper.metrics.PluginMetrics; +import org.opensearch.dataprepper.model.plugin.InvalidPluginConfigurationException; import org.opensearch.dataprepper.plugins.source.confluence.models.ConfluenceItem; import org.opensearch.dataprepper.plugins.source.confluence.models.ConfluenceSearchResults; import org.opensearch.dataprepper.plugins.source.confluence.rest.ConfluenceRestClient; import org.opensearch.dataprepper.plugins.source.confluence.utils.ConfluenceConfigHelper; import org.opensearch.dataprepper.plugins.source.confluence.utils.ConfluenceContentType; -import org.opensearch.dataprepper.plugins.source.source_crawler.exception.BadRequestException; import org.opensearch.dataprepper.plugins.source.source_crawler.model.ItemInfo; import org.springframework.util.CollectionUtils; @@ -198,14 +198,14 @@ private void validatePageTypeFilters(ConfluenceSourceConfig configuration) { if (!badFilters.isEmpty()) { String filters = String.join("\"" + badFilters + "\"", ", "); log.error("One or more invalid Page Types found in filter configuration: {}", badFilters); - throw new BadRequestException("Bad request exception occurred " + + throw new InvalidPluginConfigurationException("Bad request exception occurred " + "Invalid Page Type key found in filter configuration " + filters); } if (!includedAndExcludedPageType.isEmpty()) { String filters = String.join("\"" + includedAndExcludedPageType + "\"", ", "); log.error("One or more Page types found in both include and exclude: {}", includedAndExcludedPageType); - throw new BadRequestException("Bad request exception occurred " + + throw new InvalidPluginConfigurationException("Bad request exception occurred " + "Page Type filters is invalid because the following Page types are listed in both include and exclude" + filters); } @@ -242,14 +242,14 @@ private void validateSpaceFilters(ConfluenceSourceConfig configuration) { if (!badFilters.isEmpty()) { String filters = String.join("\"" + badFilters + "\"", ", "); log.error("One or more invalid Space keys found in filter configuration: {}", badFilters); - throw new BadRequestException("Bad request exception occurred " + + throw new InvalidPluginConfigurationException("Bad request exception occurred " + "Invalid Space key found in filter configuration for " + filters); } if (!includedAndExcludedSpaces.isEmpty()) { String filters = String.join("\"" + includedAndExcludedSpaces + "\"", ", "); log.error("One or more Space keys found in both include and exclude: {}", includedAndExcludedSpaces); - throw new BadRequestException("Bad request exception occurred " + + throw new InvalidPluginConfigurationException("Bad request exception occurred " + "Space filters is invalid because the following space are listed in both include and exclude" + filters); } diff --git a/data-prepper-plugins/saas-source-plugins/confluence-source/src/test/java/org/opensearch/dataprepper/plugins/source/confluence/ConfluenceServiceTest.java b/data-prepper-plugins/saas-source-plugins/confluence-source/src/test/java/org/opensearch/dataprepper/plugins/source/confluence/ConfluenceServiceTest.java index 37231948a7..cdffc148b9 100644 --- a/data-prepper-plugins/saas-source-plugins/confluence-source/src/test/java/org/opensearch/dataprepper/plugins/source/confluence/ConfluenceServiceTest.java +++ b/data-prepper-plugins/saas-source-plugins/confluence-source/src/test/java/org/opensearch/dataprepper/plugins/source/confluence/ConfluenceServiceTest.java @@ -19,6 +19,7 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import org.opensearch.dataprepper.metrics.PluginMetrics; +import org.opensearch.dataprepper.model.plugin.InvalidPluginConfigurationException; import org.opensearch.dataprepper.model.plugin.PluginConfigVariable; import org.opensearch.dataprepper.plugins.source.atlassian.configuration.Oauth2Config; import org.opensearch.dataprepper.plugins.source.confluence.models.ConfluenceItem; @@ -27,7 +28,6 @@ import org.opensearch.dataprepper.plugins.source.confluence.rest.ConfluenceRestClient; import org.opensearch.dataprepper.plugins.source.confluence.utils.MockPluginConfigVariableImpl; import org.opensearch.dataprepper.plugins.source.source_crawler.base.PluginExecutorServiceProvider; -import org.opensearch.dataprepper.plugins.source.source_crawler.exception.BadRequestException; import org.opensearch.dataprepper.plugins.source.source_crawler.model.ItemInfo; import org.opensearch.dataprepper.test.helper.ReflectivelySetField; import org.slf4j.Logger; @@ -61,7 +61,7 @@ /** - * The type Jira service. + * The type Confluence service Test. */ @ExtendWith(MockitoExtension.class) public class ConfluenceServiceTest { @@ -102,7 +102,7 @@ public static ConfluenceSourceConfig createConfluenceConfigurationFromYaml(Strin public static ConfluenceSourceConfig createConfluenceConfiguration(String auth_type, List pageTypes, - List projectKey) throws JsonProcessingException { + List spaceKey) throws JsonProcessingException { PluginConfigVariable pcvAccessToken = null; PluginConfigVariable pcvRefreshToken = null; ObjectMapper objectMapper = new ObjectMapper(); @@ -121,7 +121,7 @@ public static ConfluenceSourceConfig createConfluenceConfiguration(String auth_t authenticationMap.put("oauth2", oauth2Map); } - Map jiraSourceConfigMap = new HashMap<>(); + Map sourceConfigMap = new HashMap<>(); List hosts = new ArrayList<>(); hosts.add(ACCESSIBLE_RESOURCES); @@ -133,17 +133,17 @@ public static ConfluenceSourceConfig createConfluenceConfiguration(String auth_t filterMap.put("page_type", contentTypeMap); Map nameMap = new HashMap<>(); - nameMap.put("include", projectKey); + nameMap.put("include", spaceKey); spacesMap.put("key", nameMap); filterMap.put("space", spacesMap); - jiraSourceConfigMap.put("hosts", hosts); - jiraSourceConfigMap.put("authentication", authenticationMap); - jiraSourceConfigMap.put("filter", filterMap); + sourceConfigMap.put("hosts", hosts); + sourceConfigMap.put("authentication", authenticationMap); + sourceConfigMap.put("filter", filterMap); - String jiraSourceConfigJsonString = objectMapper.writeValueAsString(jiraSourceConfigMap); - ConfluenceSourceConfig confluenceSourceConfig = objectMapper.readValue(jiraSourceConfigJsonString, ConfluenceSourceConfig.class); + String sourceConfigJsonString = objectMapper.writeValueAsString(sourceConfigMap); + ConfluenceSourceConfig confluenceSourceConfig = objectMapper.readValue(sourceConfigJsonString, ConfluenceSourceConfig.class); if (confluenceSourceConfig.getAuthenticationConfig().getOauth2Config() != null && pcvAccessToken != null) { try { ReflectivelySetField.setField(Oauth2Config.class, @@ -163,7 +163,7 @@ void tearDown() { } @Test - void testJiraServiceInitialization() throws JsonProcessingException { + void testConfluenceServiceInitialization() throws JsonProcessingException { List contentType = new ArrayList<>(); List spacesKey = new ArrayList<>(); ConfluenceSourceConfig confluenceSourceConfig = createConfluenceConfiguration(BASIC, contentType, spacesKey); @@ -203,9 +203,9 @@ public void testGetPages() throws JsonProcessingException { @Test public void buildIssueItemInfoMultipleFutureThreads() throws JsonProcessingException { List pageType = new ArrayList<>(); - List projectKey = new ArrayList<>(); + List spaceKey = new ArrayList<>(); pageType.add("PAGE"); - ConfluenceSourceConfig confluenceSourceConfig = createConfluenceConfiguration(BASIC, pageType, projectKey); + ConfluenceSourceConfig confluenceSourceConfig = createConfluenceConfiguration(BASIC, pageType, spaceKey); ConfluenceService confluenceService = spy(new ConfluenceService(confluenceSourceConfig, confluenceRestClient, pluginMetrics)); List mockIssues = new ArrayList<>(); Random random = new Random(); @@ -226,30 +226,30 @@ public void buildIssueItemInfoMultipleFutureThreads() throws JsonProcessingExcep } @Test - public void testBadProjectKeys() throws JsonProcessingException { + public void testBadSpaceKeys() throws JsonProcessingException { List pageType = new ArrayList<>(); - List projectKey = new ArrayList<>(); + List spaceKey = new ArrayList<>(); pageType.add("PAGE"); - projectKey.add("Bad Project Key"); - projectKey.add("A"); - projectKey.add("!@#$"); - projectKey.add("AAAAAAAAAAAAAA"); + spaceKey.add("Bad Project Key"); + spaceKey.add("A"); + spaceKey.add("!@#$"); + spaceKey.add("AAAAAAAAAAAAAA"); - ConfluenceSourceConfig confluenceSourceConfig = createConfluenceConfiguration(BASIC, pageType, projectKey); + ConfluenceSourceConfig confluenceSourceConfig = createConfluenceConfiguration(BASIC, pageType, spaceKey); ConfluenceService confluenceService = new ConfluenceService(confluenceSourceConfig, confluenceRestClient, pluginMetrics); Instant timestamp = Instant.ofEpochSecond(0); Queue itemInfoQueue = new ConcurrentLinkedQueue<>(); - assertThrows(BadRequestException.class, () -> confluenceService.getPages(confluenceSourceConfig, timestamp, itemInfoQueue)); + assertThrows(InvalidPluginConfigurationException.class, () -> confluenceService.getPages(confluenceSourceConfig, timestamp, itemInfoQueue)); } @Test public void testGetPagesException() throws JsonProcessingException { List pageType = new ArrayList<>(); - List projectKey = new ArrayList<>(); + List SpaceKey = new ArrayList<>(); pageType.add("Task"); - ConfluenceSourceConfig confluenceSourceConfig = createConfluenceConfiguration(BASIC, pageType, projectKey); + ConfluenceSourceConfig confluenceSourceConfig = createConfluenceConfiguration(BASIC, pageType, SpaceKey); ConfluenceService confluenceService = spy(new ConfluenceService(confluenceSourceConfig, confluenceRestClient, pluginMetrics)); Instant timestamp = Instant.ofEpochSecond(0); @@ -262,7 +262,7 @@ public void testGetPagesException() throws JsonProcessingException { private ConfluenceItem createConfluenceItemBean() { ConfluenceItem confluenceItem = new ConfluenceItem(); confluenceItem.setId(UUID.randomUUID().toString()); - confluenceItem.setTitle("issue_1_key"); + confluenceItem.setTitle("item_1_key"); SpaceItem spaceItem = new SpaceItem(); spaceItem.setId(new Random().nextInt()); spaceItem.setKey(UUID.randomUUID().toString());