diff --git a/pom.xml b/pom.xml index 2bb20c41766f826f517ecc5c2f1da7ab964cc1b7..a6e1dd93f727705ea1f6eab6ffe21a18288a9a3d 100644 --- a/pom.xml +++ b/pom.xml @@ -53,34 +53,42 @@ <version>7.1.0.202411261347-r</version> </dependency> + <!-- https://mvnrepository.com/artifact/com.atlassian.jira/jira-rest-java-client-core --> <dependency> - <groupId>commons-httpclient</groupId> - <artifactId>commons-httpclient</artifactId> - <version>3.1</version> + <groupId>com.atlassian.jira</groupId> + <artifactId>jira-rest-java-client-core</artifactId> + <version>6.0.2</version> + <exclusions> + <exclusion> + <groupId>org.glassfish.jersey.core</groupId> + <artifactId>jersey-common</artifactId> + </exclusion> + </exclusions> </dependency> - <!-- https://mvnrepository.com/artifact/com.atlassian.jira/jira-api --> + <!-- Manually set Jersey version to fix error with Jakarta WS RS compatibility --> + <!-- See https://stackoverflow.com/questions/76119446/strange-issues-with-javax-ws-rs-core-uribuilder/76661651#76661651 --> <dependency> - <groupId>com.atlassian.jira</groupId> - <artifactId>jira-api</artifactId> - <version>10.3.1</version> - <scope>provided</scope> + <groupId>org.glassfish.jersey.core</groupId> + <artifactId>jersey-common</artifactId> + <version>2.27</version> + </dependency> + + <!-- Needed for Jira Rest Client dependency --> + <dependency> + <groupId>io.atlassian.fugue</groupId> + <artifactId>fugue</artifactId> + <version>6.1.0</version> + <scope>compile</scope> </dependency> </dependencies> + <!-- Needed for Jira dependencies to download --> <repositories> <repository> <id>maven-atlassian-all</id> <url>https://packages.atlassian.com/maven-public/</url> </repository> - <repository> - <id>atlassian-sdk</id> - <url>https://packages.atlassian.com/maven-external/</url> - </repository> - <repository> - <id>jenkins-releases</id> - <url>https://repo.jenkins-ci.org/releases/</url> - </repository> </repositories> <build> diff --git a/src/main/java/com/pump/PumpApplication.java b/src/main/java/com/pump/PumpApplication.java index dc8b89eafa04f59782027fb21b1234d2a20fdfd7..033a8c13479a7fb2565c6073cdb277a84729f1fd 100644 --- a/src/main/java/com/pump/PumpApplication.java +++ b/src/main/java/com/pump/PumpApplication.java @@ -1,6 +1,6 @@ package com.pump; -import com.pump.git.GitPump; +import com.pump.jira.JiraPump; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; @@ -20,8 +20,8 @@ public class PumpApplication { return _ -> { log.info("Starting application"); - GitPump gitPump = new GitPump(); - gitPump.run(); + JiraPump jiraPump = new JiraPump(); + jiraPump.run(); log.info("Application ended"); }; diff --git a/src/main/java/com/pump/jira/JiraPump.java b/src/main/java/com/pump/jira/JiraPump.java index 07287415bb0cdaee50ce6f9bb22e2a812a7f1233..044814a867ca94ddc964e31e6055f82866905895 100644 --- a/src/main/java/com/pump/jira/JiraPump.java +++ b/src/main/java/com/pump/jira/JiraPump.java @@ -1,14 +1,35 @@ package com.pump.jira; +import com.atlassian.jira.rest.client.api.JiraRestClient; +import com.atlassian.jira.rest.client.api.ProjectRestClient; +import com.atlassian.jira.rest.client.api.domain.Project; +import com.atlassian.jira.rest.client.auth.AnonymousAuthenticationHandler; +import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.net.URI; + @Slf4j @Service public class JiraPump { public void run() { log.info("Starting JiraPump..."); + + try { + JiraRestClient restClient = new AsynchronousJiraRestClientFactory().createWithAuthenticationHandler( + URI.create("https://issues.apache.org/jira"), + new AnonymousAuthenticationHandler() + ); + + ProjectRestClient projectClient = restClient.getProjectClient(); + Project project = projectClient.getProject("MADLIB").claim(); + + log.info("Project: {}", project.getName()); + } catch (Exception e) { + log.error("Error connecting to Jira or retrieving project", e); + } } }