Skip to content

Commit

Permalink
defect#541003 Support large number of jira issues in request sync (#57)
Browse files Browse the repository at this point in the history
Co-authored-by: Etienne Canaud <[email protected]>
  • Loading branch information
etiennec and Etienne Canaud authored Jan 30, 2023
1 parent 69215ee commit 01a749b
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public String getExternalApplicationVersionIndication() {

@Override
public String getConnectorVersion() {
return "3.0";
return "3.1";
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@

public class JIRARequestIntegration extends RequestIntegration {

@Override public List<AgileEntityInfo> getAgileEntitiesInfo(String agileProjectValue, ValueSet instanceConfigurationParameters) {
private static final int ISSUES_BATCH_SIZE = 200;

@Override public List<AgileEntityInfo> getAgileEntitiesInfo(String agileProjectValue, ValueSet instanceConfigurationParameters) {

List<JIRAIssueType> issueTypes = JIRAServiceProvider.get(instanceConfigurationParameters).getProjectIssueTypes(agileProjectValue);

Expand Down Expand Up @@ -392,10 +394,14 @@ private Map<String,String> getFieldsFromAgileEntity(AgileEntity entity, Map<Stri
fieldsInfo = JIRAServiceProvider.get(instanceConfigurationParameters).getFields(agileProjectValue, entityType);
}

List<JIRAAgileEntity> jiraEntities = JIRAServiceProvider.get(instanceConfigurationParameters).getAgileEntityIssuesModifiedSince(fieldsInfo, entityIds, modifiedSinceDate);
List<AgileEntity> entities = new ArrayList<>(entityIds.size());

List<List<String>> batchedEntityIds = com.google.common.collect.Lists.partition(new ArrayList<>(entityIds), ISSUES_BATCH_SIZE);

List<AgileEntity> entities = new ArrayList<>(jiraEntities.size());
entities.addAll(jiraEntities);
for (List<String> entityIdsBatch : batchedEntityIds) {
List<JIRAAgileEntity> jiraEntities = JIRAServiceProvider.get(instanceConfigurationParameters).getAgileEntityIssuesModifiedSince(fieldsInfo, entityIdsBatch, modifiedSinceDate);
entities.addAll(jiraEntities);
}

return entities;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -825,7 +825,7 @@ public JIRAAgileEntity getSingleAgileEntityIssue(String projectKey, String issue
}
}

public List<JIRAAgileEntity> getAgileEntityIssuesModifiedSince( Map<String, JIRAFieldInfo> fieldsInfo, Set<String> entityIds, Date modifiedSinceDate) {
public List<JIRAAgileEntity> getAgileEntityIssuesModifiedSince( Map<String, JIRAFieldInfo> fieldsInfo, Collection<String> entityIds, Date modifiedSinceDate) {

JiraIssuesRetrieverUrlBuilder searchUrlBuilder =
new JiraIssuesRetrieverUrlBuilder(baseUri).retrieveAllFields();
Expand Down

0 comments on commit 01a749b

Please sign in to comment.