You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2019/06/03 07:11:40 UTC
[camel] branch master updated: CAMEL-13601 - Fix camel-jira client
close and add logging https://issues.apache.org/jira/browse/CAMEL-13601
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new 3fa4b36 CAMEL-13601 - Fix camel-jira client close and add logging https://issues.apache.org/jira/browse/CAMEL-13601
3fa4b36 is described below
commit 3fa4b3630d573bb177fedacfe2364dd5354cc454
Author: Claudio Miranda <cl...@claudius.com.br>
AuthorDate: Thu May 30 17:18:52 2019 -0300
CAMEL-13601 - Fix camel-jira client close and add logging
https://issues.apache.org/jira/browse/CAMEL-13601
---
.../apache/camel/component/jira/JiraEndpoint.java | 4 ++-
.../jira/consumer/AbstractJiraConsumer.java | 4 +--
.../jira/consumer/NewCommentsConsumer.java | 37 ++++++++++++++--------
.../component/jira/consumer/NewIssuesConsumer.java | 7 ++--
parent/pom.xml | 2 +-
5 files changed, 35 insertions(+), 19 deletions(-)
diff --git a/components/camel-jira/src/main/java/org/apache/camel/component/jira/JiraEndpoint.java b/components/camel-jira/src/main/java/org/apache/camel/component/jira/JiraEndpoint.java
index f26758c..7c0eca8 100644
--- a/components/camel-jira/src/main/java/org/apache/camel/component/jira/JiraEndpoint.java
+++ b/components/camel-jira/src/main/java/org/apache/camel/component/jira/JiraEndpoint.java
@@ -111,7 +111,9 @@ public class JiraEndpoint extends DefaultEndpoint {
@Override
protected void doStop() throws Exception {
super.doStop();
- client.close();
+ if (client != null) {
+ client.close();
+ }
}
@Override
diff --git a/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/AbstractJiraConsumer.java b/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/AbstractJiraConsumer.java
index b789be9..909dee2 100644
--- a/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/AbstractJiraConsumer.java
+++ b/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/AbstractJiraConsumer.java
@@ -47,7 +47,7 @@ public abstract class AbstractJiraConsumer extends ScheduledPollConsumer {
// Ignore maxResults if it's <= 0.
protected List<Issue> getIssues(String jql, int start, int maxPerQuery, int maxResults) {
- LOG.info("Indexing current JIRA issues...");
+ LOG.debug("Start indexing current JIRA issues...");
List<Issue> issues = new ArrayList<>();
while (true) {
@@ -66,7 +66,7 @@ public abstract class AbstractJiraConsumer extends ScheduledPollConsumer {
start += maxPerQuery;
}
-
+ LOG.debug("End indexing current JIRA issues. {} issues indexed.", issues.size());
return issues;
}
diff --git a/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/NewCommentsConsumer.java b/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/NewCommentsConsumer.java
index 5a0985d..45b5e46 100644
--- a/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/NewCommentsConsumer.java
+++ b/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/NewCommentsConsumer.java
@@ -16,8 +16,8 @@
*/
package org.apache.camel.component.jira.consumer;
+import java.util.ArrayList;
import java.util.List;
-import java.util.Stack;
import com.atlassian.jira.rest.client.api.domain.Comment;
import com.atlassian.jira.rest.client.api.domain.Issue;
@@ -43,15 +43,15 @@ public class NewCommentsConsumer extends AbstractJiraConsumer {
public NewCommentsConsumer(JiraEndpoint endpoint, Processor processor) {
super(endpoint, processor);
- LOG.info("JIRA NewCommentsConsumer: Indexing current issue comments...");
- getComments(false);
}
@Override
protected int poll() throws Exception {
- Stack<Comment> newComments = getComments(true);
- while (!newComments.empty()) {
- Comment newComment = newComments.pop();
+ List<Comment> newComments = getComments();
+ int max = newComments.size() - 1;
+ // retrieve from last to first item LIFO
+ for (int i = max; i > -1; i--) {
+ Comment newComment = newComments.get(i);
Exchange e = getEndpoint().createExchange();
e.getIn().setBody(newComment);
getProcessor().process(e);
@@ -59,22 +59,33 @@ public class NewCommentsConsumer extends AbstractJiraConsumer {
return newComments.size();
}
+ @Override
+ protected void doStart() throws Exception {
+ super.doStart();
+ // read the actual comments, the next poll outputs only the new comments added after the route start
+ getComments();
+ }
+
// In the end, we want *new* comments oldest to newest.
- private Stack<Comment> getComments(boolean loadComments) {
- Stack<Comment> newComments = new Stack<>();
+ @SuppressWarnings("ConstantConditions")
+ private List<Comment> getComments() {
+ LOG.debug("Start: Jira NewCommentsConsumer: retrieving issue comments. Last comment id: {}", lastCommentId);
+ List<Comment> newComments = new ArrayList<>();
List<Issue> issues = getIssues();
for (Issue issue : issues) {
Issue fullIssue = client().getIssueClient().getIssue(issue.getKey()).claim();
for (Comment comment : fullIssue.getComments()) {
- //noinspection ConstantConditions
if (comment.getId() > lastCommentId) {
- lastCommentId = comment.getId();
- if (loadComments) {
- newComments.push(comment);
- }
+ newComments.add(comment);
}
}
}
+ for (Comment c: newComments) {
+ if (c.getId() > lastCommentId) {
+ lastCommentId = c.getId();
+ }
+ }
+ LOG.debug("End: Jira NewCommentsConsumer: retrieving issue comments. {} new comments since last run.", newComments.size());
return newComments;
}
}
diff --git a/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/NewIssuesConsumer.java b/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/NewIssuesConsumer.java
index e06667b..9cb123c 100644
--- a/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/NewIssuesConsumer.java
+++ b/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/NewIssuesConsumer.java
@@ -32,14 +32,17 @@ import org.apache.camel.component.jira.JiraEndpoint;
public class NewIssuesConsumer extends AbstractJiraConsumer {
private final String jql;
-
private long latestIssueId = -1;
public NewIssuesConsumer(JiraEndpoint endpoint, Processor processor) {
super(endpoint, processor);
-
jql = endpoint.getJql() + " ORDER BY key desc";
+ }
+ @Override
+ protected void doStart() throws Exception {
+ super.doStart();
+ // read the actual issues, the next poll outputs only the new issues added after the route start
// grab only the top
List<Issue> issues = getIssues(jql, 0, 1, 1);
// in case there aren't any issues...
diff --git a/parent/pom.xml b/parent/pom.xml
index 5e60511..6f355dd 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -384,7 +384,7 @@
<jgroups-raft-jgroups-version>4.0.15.Final</jgroups-raft-jgroups-version>
<jgroups-raft-leveldbjni-version>1.8</jgroups-raft-leveldbjni-version>
<jgroups-raft-mapdb-version>1.0.8</jgroups-raft-mapdb-version>
- <jira-guava-version>26.0-jre</jira-guava-version>
+ <jira-guava-version>20.0</jira-guava-version>
<jira-rest-client-api-version>5.1.0</jira-rest-client-api-version>
<libthrift-version>0.12.0</libthrift-version>
<jing-bundle-version>20030619_5</jing-bundle-version>